I’ve recently been playing around with some small distributions so I can setup a tiny webcam server – no luck there yet, but I thought I’d post up how to boot Puppy over PXE as I tried that out while messing around.
Step 1 – Getting Puppy
So first thing we need to do, is to get Puppy Linux from here
Wget is my weapon of choice here, so the above command will download the ISO file into the current directory. I am logged in as root to set everything up so it has downloaded the iso to
After we get the ISO file, we need to extract a few files from the ISO so we can use them to boot over PXE.
mount -o loop lupu-525.iso /mnt
With the above command, we mount the ISO from the current directory onto
/mnt so we can copy the files off the ISO.
Once it is mounted, we will need 3 files off the ISO:
cp /mnt/initrd.gz /tftpboot/puppy/
cp /mnt/vmlinuz /tftpboot/puppy/
cp /mnt/lupu_525.sfs /tftpboot/puppy/
With those commands, we create a directory to store the files in, and copy them over.
Step 2 – Setting it up
We will need to pack
lupu_525.sfs into the initrd image for this to work as the livecd expects it to be somewhere on the boot media but we don’t have any boot media as we are booting over the network.
So what we do is make a folder so we can modify the initrd –
Change to that directory
Then we will extract the contents of the initrd.
zcat /tftpboot/puppy/initrd.gz | cpio -i -H newc -d
Now the contents of the initrd are in
We’ll move the
lupu_525.sfs file into the temp folder –
mv /tftpboot/puppy/lupu_525.sfs /tftpboot/puppy/temp
Then we’ll repack it up into a new initrd.gz file by running this command while inside the temp directory –
find | cpio -o -H newc | gzip -4 > ../newinitrd.gz
Now we have our new initrd.gz file, we can setup the pxelinux config file with a new menu item.
Step 3 – Setting up pxelinux.cfg
So now we will need to add the following codeblock to
MENU LABEL Puppy Linux 5.2.5
Notice we have used the name of the newinitrd.gz file as that is the one we will need to boot from in order for Puppylinux to get the lupu_525.sfs file.
Once you have updated the configuration file, you are now ready to boot Puppy Linux 5.2.5 !