I use a FreeDOS floppy disk to boot Puppy Linux. To do this, I placed the following files which come with the Puppy Linux release into the partition at /mnt/sda4, which is what FreeDOS sees as my C: drive.
- vmlinuz - the Linux Kernel
- pup_412.sfs - Puppy Linux itself, compressed in a Squash filesystem
On the floppy disk, command.com and kernel.sys are the files which boot FreeDOS. As soon as they are up and running, it executes the autoexec.bat (remember those?) which has the following command:
LINLD.COM image=C:\vmlinuz initrd=C:\initrd.gz email@example.com
What it does is launches a DOS program called LINLD which boots Linux. The option firstname.lastname@example.org uses a three line file with the following parameters:
These are my boot time "cheat codes" which tell Puppy to install into RAM, use my personal save file for the latest and greatest configuration and files, and get everything it needs from the hard drive. I have another disk which can boot Puppy from a USB stick. In that case, pmedia=usbflash. If the pmedia parameter is not present, Puppy will look for an empty file, named either idehd or usbflash on the drive in question, and take that as orders.
Why am I doing this? I have three computers. This Compaq I'm using now is the newest one, it has no floppy drive built in, and it won't boot from a USB floppy, so I need to boot Hacky Linux (stored on a USB stick) using a live CD.
I have a second computer with Puppy 4.1.2 on a USB stick, but it won't boot from the USB stick alone, so it needs either a live CD or a floppy disk to boot it.
I can't get any DOS USB drivers to work on my third computer, for some reason they cause the machine to reboot as soon as they are installed. So I've installed Puppy on the hard drive for that one, but that third computer won't boot anything from the C: drive, neither DOS, nor Puppy or any other distro, without this floppy boot disk to assist.
This is what hacking is all about. Just make it work.