Puppy Linux Windows Installer - LICK v1.3.3 released

A home for all kinds of Puppy related projects
Post Reply
Message
Author
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

Puppy Linux Windows Installer - LICK v1.3.3 released

#1 Post by noryb009 »

Install Puppy Linux on Windows

Download LICK here.

LICK is a Puppy Linux installer for Windows. It configures Windows and Puppy Linux to create a dual-boot environment in just a few clicks. This makes it perfect if you want to try out Linux without the hassle of installing.

LICK is versatile: it can be run on almost any version of Windows, from Windows 95 to Windows 10, on BIOS or UEFI, with or without secure boot.

LICK is easy to use: It does not require a CD to be burnt or a USB drive to run. Download a Puppy Linux ISO and select it in the program to install it.

LICK is developer-friendly: If you want to bring the power of LICK to your application or distribution, a command line utility and a library are available. LICK is licensed under the MIT license, so feel free to use it however you like.

You can Download LICK and an ISO file of your favourite version of Puppy Linux to get started.
Last edited by noryb009 on Sun 24 Feb 2019, 06:54, edited 51 times in total.
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#2 Post by noryb009 »

The predecessor to LICK is PLIC - the Puppy Linux Installer Creator. It has been deprecated. For reference, the original first post of this thread can be found here.
Last edited by noryb009 on Sun 20 Mar 2016, 20:12, edited 16 times in total.
User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

LupQ Windows Installer available

#3 Post by shinobar »

Congratulations, noryb :!:

One thing for the installer creators:
Extracting the zip, the foler named 'Puppy Linux Installer Creator V1.0'.
There is another folder named 'Puppy Linux Installer Creator' under the 'Puppy Linux Installer Creator V1.0'.
You can extract the zip anywhere. Then move the inner folder 'Puppy Linux Installer Creator' to C:\.

Created the Quickset Wary/LupQ Windows installer.
Do not support Windows Me.
Quickset_Wary_Puppy_Linux-511.exe from here
md5sum: d5bc0c6361d2516c54cec78d8bb281bc

Lucid-Puppy-Quickset-edition-511-Installer.exe from here
md5sum: 6c7dba6b5dfe49a09ee785ce3dc22b36
Last edited by shinobar on Sun 24 Apr 2011, 11:56, edited 1 time in total.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]
ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#4 Post by ICPUG »

Well done, noryb, for this offering.

I have a couple of queries.

I have a Windows 7 computer now but I am naturally reluctant to mess its booting up by running an installer when I don't know what it does! (Lin'N'Win has not been updated to cover Windows 7 yet).

Is it possible to briefly describe how the scripts in the installer achieve the boot on a Windows 7 machine? Does it copy grldr somewhere? How does it edit the BCD to refer to grldr - what tools used - what lines added?

Hopefully, you will allow me to include your description in Lin'N'Win in return for an acknowledgement.

My second query relates to what happens if someone installs a SECOND puppy by an installer that has been created by your method. Will the installer recognise that all the bits are in place and simply add a block to the menu.lst?
User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

NSIS script

#5 Post by shinobar »

ICPUG wrote:Is it possible to briefly describe how the scripts in the installer achieve the boot on a Windows 7 machine? Does it copy grldr somewhere? How does it edit the BCD to refer to grldr - what tools used - what lines added?
The script main.nsi, you can find after extracting the Puppy Linux Installer Creator V1.0.zip, can be an answer:
http://nsis.sourceforge.net/Main_Page
Last edited by shinobar on Mon 08 Nov 2010, 14:36, edited 1 time in total.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]
ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#6 Post by ICPUG »

Shinobar

Yes - that could be an answer but I was rather hoping to avoid having to learn yet another scripting language to decipher the answer.

Noryb must know what he did and he can provide the response far quicker and in a conversational language.
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#7 Post by noryb009 »

Hopefully, you will allow me to include your description in Lin'N'Win in return for an acknowledgement.
Of course! You were the one who did most of the work for this project. I would have never gotten 9x working.
My second query relates to what happens if someone installs a SECOND puppy by an installer that has been created by your method. Will the installer recognise that all the bits are in place and simply add a block to the menu.lst?
Yes, it will just add to the menu.lst. It checks C:\ and C:\boot\grub for a menu.lst, and adds itself to it. It also only asks to uninstall grub if it's the last puppy installed.
I have a Windows 7 computer now but I am naturally reluctant to mess its booting up by running an installer when I don't know what it does! (Lin'N'Win has not been updated to cover Windows 7 yet).

Is it possible to briefly describe how the scripts in the installer achieve the boot on a Windows 7 machine? Does it copy grldr somewhere? How does it edit the BCD to refer to grldr - what tools used - what lines added?
First of all, it copys grldr and grldr.mbr (both in the grub4dos zip file, I'm not sure if you need grldr) to C:\, then runs the following commands in command prompt:

Code: Select all

bcdedit /export "C:\BCD Backup"
(backs up the BCD, for safety)

bcdedit /create /d "Start Puppy Linux" /application bootsector
(Adds the puppy entry)
This command returns an ID, like in this image: http://murga-linux.com/puppy/viewtopic.php?mode=attach&id=33758
The installer gets the ID. You have to use the { } brackets for it to work.

bcdedit /set {Insert ID here} device "partition=C:"
bcdedit /set {Insert ID here} path \grldr.mbr
(When you select it from the menu, run C:\grldr.mbr)

bcdedit /displayorder {Insert ID here} /addlast
(adds it to the menu)

bcdedit /timeout 10
(sets the timeout to 10 seconds)
Also, the user must run command prompt in admin mode (right click > run as admin)




EDIT: I forgot, because of 7 having a partition for booting, you can't just use (0,0) in menu.lst. Here is a entry that shinobar
gave me:

Code: Select all

title puppy
find --set-root --ignore-floppies /puppy/initrd.gz
kernel /puppy/vmlinuz psubdir="puppy"
initrd /puppy/initrd.gz
boot
Is there anything else you need?
User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#8 Post by Lobster »

:)
I got to the last stage with Lucid-235 ISO and then the following output:

Code: Select all

MakeNSIS v2.46 - Copyright 1995-2009 Contributors
See the file COPYING for license details.
Credits can be found in the Users Manual.

Processing config: 
Processing plugin dlls: "C:\Program Files\NSIS\Plugins\*.dll"
 - AdvSplash::show
 - Banner::destroy
 - Banner::getWindow
 - Banner::show
 - BgImage::AddImage
 - BgImage::AddText
 - BgImage::Clear
 - BgImage::Destroy
 - BgImage::Redraw
 - BgImage::SetBg
 - BgImage::SetReturn
 - BgImage::Sound
 - Dialer::AttemptConnect
 - Dialer::AutodialHangup
 - Dialer::AutodialOnline
 - Dialer::AutodialUnattended
 - Dialer::GetConnectedState
 - InstallOptions::dialog
 - InstallOptions::initDialog
 - InstallOptions::show
 - LangDLL::LangDialog
 - Math::Script
 - NSISdl::download
 - NSISdl::download_quiet
 - Splash::show
 - StartMenu::Init
 - StartMenu::Select
 - StartMenu::Show
 - System::Alloc
 - System::Call
 - System::Copy
 - System::Free
 - System::Get
 - System::Int64Op
 - System::Store
 - TypeLib::GetLibVersion
 - TypeLib::Register
 - TypeLib::UnRegister
 - UserInfo::GetAccountType
 - UserInfo::GetName
 - UserInfo::GetOriginalAccountType
 - VPatch::GetFileCRC32
 - VPatch::GetFileMD5
 - VPatch::vpatchfile
 - nsDialogs::Create
 - nsDialogs::CreateControl
 - nsDialogs::CreateItem
 - nsDialogs::CreateTimer
 - nsDialogs::GetUserData
 - nsDialogs::KillTimer
 - nsDialogs::OnBack
 - nsDialogs::OnChange
 - nsDialogs::OnClick
 - nsDialogs::OnNotify
 - nsDialogs::SelectFileDialog
 - nsDialogs::SelectFolderDialog
 - nsDialogs::SetRTL
 - nsDialogs::SetUserData
 - nsDialogs::Show
 - nsExec::Exec
 - nsExec::ExecToLog
 - nsExec::ExecToStack

!define: "MUI_INSERT_NSISCONF"=""

Changing directory to: "Z:\root\.wine\c_drive\Puppy Linux Installer Creator"

Processing script file: "Z:\root\.wine\c_drive\Puppy Linux Installer Creator\main.nsi"
!include: "Puppy Linux Installer Maker.nsh"
!define: "PUPPY_SFS"="luci-235.sfs"
!define: "PRODUCT_NAME"="Puppy Lucid"
!define: "PRODUCT_VERSION"="235"
!define: "INSTALL_DIR"="Puppy-Lucid-235"
Function: "in"
FunctionEnd
Function: "un.uninstall"
FunctionEnd
!include: closed: "Puppy Linux Installer Maker.nsh"
SetOverwrite: on
!define: "WHAT_TO_CALL_ON_BOOT"="Start Puppy Linux"
!define: "PRODUCT_WEB_SITE"="http://puppylinux.org"
!define: "PRODUCT_UNINST_KEY_UP_ONE"="Software\Microsoft\Windows\CurrentVersion\Uninstall\PuppyLinux"
!define: "PRODUCT_UNINST_KEY"="Software\Microsoft\Windows\CurrentVersion\Uninstall\PuppyLinux\Puppy Lucid 235"
!define: "PRODUCT_UNINST_KEY_THAT_SHOWS_IN_REMOVE_PROGRAMS"="Software\Microsoft\Windows\CurrentVersion\Uninstall\Puppy Lucid 235"
!define: "PRODUCT_UNINST_ROOT_KEY"="HKLM"
!define: "PRODUCT_PUBLISHER"="Puppy Linux"
!include: "C:\Program Files\NSIS\Include\MUI.nsh"
!include: "C:\Program Files\NSIS\Contrib\Modern UI\System.nsh"
NSIS Modern User Interface version 1.8 - Copyright 2002-2009 Joost Verburg (C:\Program Files\NSIS\Contrib\Modern UI\System.nsh:8)
!define: "MUI_INCLUDED"=""
!define: "MUI_SYSVERSION"="1.8"
!define: "MUI_VERBOSE"="3"
!include: closed: "C:\Program Files\NSIS\Contrib\Modern UI\System.nsh"
!include: closed: "C:\Program Files\NSIS\Include\MUI.nsh"
!define: "MUI_ABORTWARNING"=""
!define: "MUI_ICON"="C:\Puppy Linux Installer Creator\Puppy Linux Install.ico"
!define: "MUI_UNICON"="C:\Puppy Linux Installer Creator\Puppy Linux Uninstall.ico"
!insertmacro: MUI_PAGE_WELCOME
Error while loading icon from "C:\Puppy Linux Installer Creator\Puppy Linux Install.ico": can't open file
Error in macro MUI_INTERFACE on macroline 64
Error in macro MUI_PAGE_INIT on macroline 2
Error in macro MUI_PAGE_WELCOME on macroline 5
Error in script "Z:\root\.wine\c_drive\Puppy Linux Installer Creator\main.nsi" on line 27 -- aborting creation process
I am running from DVD not frugal or full install
could that be the error or something to do with file locations?
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D
ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#9 Post by ICPUG »

Thank you Noryb for the explanation of how the windows 7 install works. That was just what I needed and will suffice while I investigate around some issues I have (understanding windows 7).

Your post encouraged me to read again some stuff I had collected ready for when I had Windows 7 - most notably the Grub4dos_tutorial and the README_GRUB4DOS.txt that is part of the Grub4DOS package. These are the only 2 docs I have found for grub4DOS. The readme is technical and written by someone who does not have English as a first language, although it is pretty good! The tutorial is more user friendly.

I see your technique is basically that from the readme with the crucial step about noting the {id} and substituting it in subsequent commands made clear! The tutorial neglected this and confused me a bit.

In the line:
bcdedit /set {Insert ID here} device "partition=C:"

The last bit is quoted whereas Microsoft (see here http://support.microsoft.com/kb/919529) nor the readme suggests that it needs to be quoted.

By the way, this line in the tutorial is shown as:
bcdedit /set {ID} device boot
which I think is out of date. Your line is more correct according to Microsoft and the readme. I don't know the subtleties of BCEDIT yet. Must download Microsoft's manual to BCEDIT, but it is in their appalling docx format only.

One thing I can tell you. With this approach you need both grldr.mbr AND grldr. The latter is called up by the former.

What I would like to know at some point is whether one can dispense with grldr.mbr and call up grldr directly, but that is one for me to play with, (as is the rather more drastic renaming of bootmgr to winbootmgr and grldr to bootmgr and then chainload winbootmgr from grub when windows is required!).

Your method seems safe. Well done.
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#10 Post by noryb009 »

Thanks.
By the way, this line in the tutorial is shown as:
bcdedit /set {ID} device boot
Shinobar said that that didn't work right, so he showed be partition=C
but it is in their appalling docx format only.
I think you can e-mail it to a gmail or hotmail accout (among others) and preview it in HTML format.
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#11 Post by noryb009 »

Sorry lobster, I didn't see your post. Can you open up makensisw, then drag the main.nsi to the window from ROX?
Last edited by noryb009 on Fri 05 Nov 2010, 20:49, edited 1 time in total.
User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#12 Post by Lobster »

Can you open up makensisw, then drag the main.nsi to the window from ROX?
Yes I can - did that initially but got an error message with that too . . .
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#13 Post by noryb009 »

Go to makensisw, open (top left, under File), then select main.nsi (make sure it's from C:\, not Z:\).

EDIT: also make sure /root/.wine/drive_c/Puppy Linux Installer Creator/Puppy Linux Install.ico is a file. I am currently using 501, which might also have something to do with it.
Last edited by noryb009 on Fri 05 Nov 2010, 23:51, edited 1 time in total.
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#14 Post by noryb009 »

I uploaded a new version of the autorun installer. It now is only 160 KB (it was 300 KB).
User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

set device to boot or...

#15 Post by shinobar »

Code: Select all

bcdedit /set {Insert ID here} device "partition=C:"
By the way, this line in the tutorial is shown as:

Code: Select all

bcdedit /set {ID} device boot
The tutorial should be right if the grldr.mbr is on the boot partition.
But our case, the grldr.mbr is copied on the C:\, so we need to use "partition=C:" instead of 'boot'. (I am not sure the quotation is required or not,)

We are better to be aware of the Windows 7 installation style.
The standard style of the Windows 7 installer makes a small(100-200MB) boot partition and the system in the next partition.
The first partition is ntfs but hidden from the Windows system, so the second is 'C:".
Therefore, the boot partition and 'C:' can be the same and can be different depending on the installation style.

If we can put the grldr.mbr on the boot partition, it must be more simple.
But our installer works on the Windows system, which cannot access the boot partition in this case.

Does it make it clear?
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]
ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#16 Post by ICPUG »

Thank you shinobar for the extra info.

I finally got the bcedit manual (original version, not the latest) in pdf form. A quick look did not help me to understand when 'device boot' was needed. Your info did!

This little extra 100M partition is a bit of a nuisance. I knew about it before and I also know it can be avoided if you install Windows 7 very carefully. Even though I used a dedicated computer retailer I find my machine has this little extra partition. Apart from wasting one of the 4 allowed primary partitions I hope that somewhere there is some info I can find which explains in detail the Win 7 boot process and what the purpose of this little extra partition is.
noryb009
Posts: 634
Joined: Sat 20 Mar 2010, 22:28

#17 Post by noryb009 »

ICPUG: I think it's so that people can't delete the boot loader, so it's easier to repair if people start deleting everything.
ICPUG
Posts: 1308
Joined: Mon 25 Jul 2005, 00:09
Location: UK

#18 Post by ICPUG »

Thanks noryb.

I have been doing some more searching and apparently the small partition incorporates the Windows Recovery Environment. If Windows 7 does not boot properly a flag does not get reset. Next time you boot the flag is detected and you are booted into that small partition.

Since, with Windows XP, one needed an install disk to get the recovery environment, which lots of PCs didn't have, this small partition is an improvement!

If you install Windows 7 in a set way this environment will be placed in a folder on the main partition instead of creating a separate partition.

The small partition may also be used for bitlocker encryption but as I don't have an enterprise edition Windows 7 that is not something I am going to investigate!
User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

Success with Windows Xp

#19 Post by shinobar »

A success report from bodbozzle of the Lucid-Puppy-Quickset-511-installer.exe with Windows Xp.
http://www.murga-linux.com/puppy/viewto ... 9&start=53
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]
olgaritmo
Posts: 2
Joined: Wed 10 Nov 2010, 16:54
Location: Bologna, Italy

not working on windows ME

#20 Post by olgaritmo »

lupu Quickset is a treat which revived my old laptop with no international keyboard setting hassles (the reason why I gave up lupu 511)! You made me an happy environment friendly pc user! Anyway, I tried the installer on WinME but unfortunately it didn't work.
Best regards and I'll keep in touch!
Olga Ritmo
Post Reply