(old)Puppy Linux Discussion Forum
Puppy Linux Windows Installer — LICK v1.3.3 released
Puppy Linux Windows Installer — LICK v1.3.3 released
#1 Post by noryb009 » Mon 01 Nov 2010, 00:53
Install Puppy Linux on Windows
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.
#2 Post by noryb009 » Mon 01 Nov 2010, 00:54
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.
shinobar Posts: 2672 Joined: Thu 28 May 2009, 09:26 Location: Japan Contact:
LupQ Windows Installer available
#3 Post by shinobar » Mon 01 Nov 2010, 03:14
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
#4 Post by ICPUG » Wed 03 Nov 2010, 13:13
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?
shinobar Posts: 2672 Joined: Thu 28 May 2009, 09:26 Location: Japan Contact:
NSIS script
#5 Post by shinobar » Wed 03 Nov 2010, 14:35
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
#6 Post by ICPUG » Wed 03 Nov 2010, 17:39
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.
#7 Post by noryb009 » Wed 03 Nov 2010, 21:42
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:
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 device "partition=C:" bcdedit /set path \grldr.mbr (When you select it from the menu, run C:\grldr.mbr) bcdedit /displayorder /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:
title puppy find --set-root --ignore-floppies /puppy/initrd.gz kernel /puppy/vmlinuz psubdir="puppy" initrd /puppy/initrd.gz boot
Lobster Official Crustacean Posts: 15522 Joined: Wed 04 May 2005, 06:06 Location: Paradox Realm Contact:
#8 Post by Lobster » Fri 05 Nov 2010, 08:05
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?
#9 Post by ICPUG » Fri 05 Nov 2010, 13:13
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 and substituting it in subsequent commands made clear! The tutorial neglected this and confused me a bit.
In the line:
bcdedit /set 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 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.