How to boot multiple versions of Windows and Puppy Linux

By Arthur R. Kopp 10/1/12



In order to boot more than one version of Windows and more than one breed of Puppy Linux, I settled on
a method using two menus. The Windows menu is done by C:\boot.ini as usual. The Linux menu is done
by C:\menu.lst. Each of these menus have an option to select the other menu.

My hard drive has three partitions. I have Windows XP installed on the first partition and Windows 2000
on the second. A third partition is used for data and multimedia files. This partition is also where my
Puppy files reside. I have Puppy Lucid 528 files files in a lucid folder and Precise Puppy files in a folder
named precise. Three files from each live CD are copied to their respective folders:
vmlinuz    initrd.gz    *.sfs

Download grldr: grldr    Copy grldr to C:\

It's a good idea to backup your C:\boot.ini file. If you haven't setup Windows to make system files visible
then use a CMD window (Start-Run-type cmd.exe) and type: attrib -r -s -h c:\boot.ini to remove read-only,
system and hidden attributes before backup. Then edit c:\boot.ini and add the following last line:
C:\grldr="Linux Menu"

Here's what my boot.ini file looks like:
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
c:\grldr="Linux Menu"
The stuff in quotes appears as a menu selection during bootup. If Linux Menu is selected the menu.lst file
supplies the Puppy breed selection menu. Here's my C:\menu.lst file:
timeout=10
default=0
color white/blue
title Puppy Lucid
rootnoverify (hd0,2)
kernel /lucid/vmlinuz pmedia=atahd pdev1=sda3 psubdir=lucid
initrd /lucid/initrd.gz
boot
title Puppy Precise
rootnoverify (hd0,2)
kernel /precise/vmlinuz pmedia=atahd pdev1=sda3 psubdir=precise
initrd /precise/initrd.gz
boot
title Windows Menu
rootnoverify (hd0,0)
chainloader (hd0,0)+1
If Windows Menu is selected the boot.ini menu repeats. Text after the word title appears as a menu item.

By the way, notice on the above desktop that I have icons for agent.exe and freecell.exe over near the left side.
These are Windows programs I run under Wine. Notice also the small red circle on the sda3 icon. That circle
indicates that the third hard drive partition is both mounted and in use. It can't be unmounted since Puppy relies
on a personal save file I created later on. Puppy saves that file in the same folder where the three main files
are located.

Notes:
1. Here's where the desktop image file used above can be downloaded: desktop image
2. To expand on using a CMD window in Windows XP: Click on Start then Run. Type cmd.exe into the text window
   and press the Enter key. A black window should appear. Then type the command and press Enter.
3. Use any text editor, such as Notepad, to edit your boot.ini file and create your menu.lst file. That's a l
   as in "list" and not the number one in the file name extension.
4. The MD5 of the grldr file is FCEC9E82177C23864A91D896AEF261DF and it's file length is 217,769 bytes.
5. The following extension of this page was added on 10/10/12.

USB boot for older machines

My PCs are too old to be capable of booting a USB drive. Fortunately, a boot manager named PLOP can be used
to overcome this limitation. I've opted to put PLOP on a floppy boot disk which displays a menu including
the USB drive. Download: PLOP

You will need a app that writes a floppy from a image file. I use: Floppy Image All you need is the image file
plpbt.img from the PLOP files.

I use Puppy to make my USB drives bootable and also format them. The rest of a frugal install to the USB drive
I do manually. In Lucid Puppy 528 the app "Bootflash install Puppy" is found under Menu - Setup. I let it do the
first two items (make bootable and format) then exit. I create the (one line text) file syslinux.cfg as:
default vmlinuz initrd=initrd.gz pmedia=usbflash
and copy it to the USB drive along with vmlinuz    initrd.gz    *.sfs where *.sfs is the main puppy file such as
Lucid-528.sfs for example. In addition, you may want to add your personal Save file.

The PLOP web site is rich in information concerning the many options available.