Hi All,
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 http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-5.2.5/lupu-525.iso
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 /root/
.
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:
initrd.gz
vmlinuz
lupu_525.sfs
mkdir /tftpboot/puppy/
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 –
mkdir /tftpboot/puppy/temp
Change to that directory
cd /tftpboot/puppy/temp
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 /tftpboot/puppy/temp
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 /tftpboot/pxelinux.cfg/default
LABEL Puppylinux
MENU LABEL Puppy Linux 5.2.5
kernel puppy/vmlinuz
append initrd=puppy/newinitrd.gz
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 !
Hey. I’ve been trying to get this method to work, nice find btw. Ive found puppy to be fairly poorly documented unless you want to spend hours reading through forum posts.
I’ve followed your inctructions, however I’m getting stuck at newinitrd.gz, PXELINUX says it doesnt exist when clearly it does, and I am pretty sure its something to do with my newinitrd.gz.
Any chance you could post your newinitrd.gz for me to try?
Thanks :3
Hi
Do you have anything else setup for pxebooting ?
Also can you pastebin your pxelinux.cfg/default file up ?
It sounds like it could be a path issue inside the config file if the file is there.
Otherwise it would be able to find the file but then be unable to boot.
The file should be alright as long as it contains the lupu_525 file.
Cheers
Hi,
I have tried to setup my dhcp and tftp server and make the configuration steps as written.
My pc got an ip address (ok), displayed the boot menue (ok), loaded the vmlinuz (ok),
but when loading the (new) initrd.gz file, the computer breaks up load process and starts rebooting.
Have you any ideas why the pc is not loading the new (160mb) initrd.gz file completely and starts then???
Thanks hw
Hi hw
Which version of Puppy did you get ?
Can the PC boot any other distros over PXE ?
Also have you tried repacking the initrd ?
Often I find that the reason the distro doesnt boot is because it’s not finding the neccesary file(s) to boot.
Lupu_525.sfs in this case.
Were there any errors before the pc rebooted ?
Hello again,
I’m using Macpup (based on Puppy 5.2.8).
After using another, newer pc with newer bios version, the pxe boot is running perfectly!
Thank you for your excellent step by step description; I would have success in a very short time, if this old bios revision had not been on that old test pc. My fault, sorry!
Thanks hw
Awesome, happy I could help π
Feel free to give me a shout if you need more help π
need help for install Boot Puppy 5.2.5 over PXE
What’s the issue your having ?
What have you tried so far ?
When I do
zcat /tftpboot/puppy/initrd.gz | cpio -i -H newc -d
I got this output
cpio: dev/systty: Cannot mknod: Operation not permitted
cpio: dev/sdf7: Cannot mknod: Operation not permitted
cpio: dev/hda14: Cannot mknod: Operation not permitted
cpio: dev/loop10: Cannot mknod: Operation not permitted
cpio: dev/sde3: Cannot mknod: Operation not permitted
cpio: dev/hda13: Cannot mknod: Operation not permitted
cpio: dev/sdb8: Cannot mknod: Operation not permitted
cpio: dev/sdc8: Cannot mknod: Operation not permitted
cpio: dev/sdf: Cannot mknod: Operation not permitted
cpio: dev/sdh: Cannot mknod: Operation not permitted
cpio: dev/sr1: Cannot mknod: Operation not permitted
cpio: dev/sdb12: Cannot mknod: Operation not permitted
cpio: dev/sda4: Cannot mknod: Operation not permitted
cpio: dev/sda11: Cannot mknod: Operation not permitted
cpio: dev/sdc: Cannot mknod: Operation not permitted
cpio: dev/mmcblk0p2: Cannot mknod: Operation not permitted
cpio: dev/null: Cannot mknod: Operation not permitted
cpio: dev/sde5: Cannot mknod: Operation not permitted
cpio: dev/loop5: Cannot mknod: Operation not permitted
cpio: dev/sdd1: Cannot mknod: Operation not permitted
cpio: dev/sdf6: Cannot mknod: Operation not permitted
cpio: dev/mmcblk0p1: Cannot mknod: Operation not permitted
cpio: dev/sdh1: Cannot mknod: Operation not permitted
cpio: dev/sde4: Cannot mknod: Operation not permitted
cpio: dev/sr2: Cannot mknod: Operation not permitted
cpio: dev/hdc7: Cannot mknod: Operation not permitted
cpio: dev/sda5: Cannot mknod: Operation not permitted
cpio: dev/sdb10: Cannot mknod: Operation not permitted
cpio: dev/hdd6: Cannot mknod: Operation not permitted
cpio: dev/ram0: Cannot mknod: Operation not permitted
cpio: dev/zero: Cannot mknod: Operation not permitted
cpio: dev/hda4: Cannot mknod: Operation not permitted
cpio: dev/sdc6: Cannot mknod: Operation not permitted
cpio: dev/loop0: Cannot mknod: Operation not permitted
cpio: dev/tty: Cannot mknod: Operation not permitted
cpio: dev/sde1: Cannot mknod: Operation not permitted
cpio: dev/hda9: Cannot mknod: Operation not permitted
cpio: dev/sdg: Cannot mknod: Operation not permitted
cpio: dev/sdf2: Cannot mknod: Operation not permitted
cpio: dev/hdd1: Cannot mknod: Operation not permitted
cpio: dev/hdd7: Cannot mknod: Operation not permitted
cpio: dev/sdb: Cannot mknod: Operation not permitted
cpio: dev/scd3: Cannot mknod: Operation not permitted
cpio: dev/kmsg: Cannot mknod: Operation not permitted
cpio: dev/sdh2: Cannot mknod: Operation not permitted
cpio: dev/hdb1: Cannot mknod: Operation not permitted
cpio: dev/hdc4: Cannot mknod: Operation not permitted
cpio: dev/rtc: Cannot mknod: Operation not permitted
cpio: dev/mmcblk0: Cannot mknod: Operation not permitted
cpio: dev/loop1: Cannot mknod: Operation not permitted
cpio: dev/sdb4: Cannot mknod: Operation not permitted
cpio: dev/loop4: Cannot mknod: Operation not permitted
cpio: dev/hdd3: Cannot mknod: Operation not permitted
cpio: dev/sda: Cannot mknod: Operation not permitted
cpio: dev/sdd: Cannot mknod: Operation not permitted
cpio: dev/hdc8: Cannot mknod: Operation not permitted
cpio: dev/hdc1: Cannot mknod: Operation not permitted
cpio: dev/hda5: Cannot mknod: Operation not permitted
cpio: dev/sdc15: Cannot mknod: Operation not permitted
cpio: dev/sdb6: Cannot mknod: Operation not permitted
cpio: dev/sdc7: Cannot mknod: Operation not permitted
cpio: dev/sda12: Cannot mknod: Operation not permitted
cpio: dev/loop6: Cannot mknod: Operation not permitted
cpio: dev/loop2: Cannot mknod: Operation not permitted
cpio: dev/sdb5: Cannot mknod: Operation not permitted
cpio: dev/hdb2: Cannot mknod: Operation not permitted
cpio: dev/sdc9: Cannot mknod: Operation not permitted
cpio: dev/hdd2: Cannot mknod: Operation not permitted
cpio: dev/sda13: Cannot mknod: Operation not permitted
cpio: dev/sda10: Cannot mknod: Operation not permitted
cpio: dev/sdd7: Cannot mknod: Operation not permitted
cpio: dev/sdd8: Cannot mknod: Operation not permitted
cpio: dev/sdb15: Cannot mknod: Operation not permitted
cpio: dev/fb0: Cannot mknod: Operation not permitted
cpio: dev/sdc14: Cannot mknod: Operation not permitted
cpio: dev/sda6: Cannot mknod: Operation not permitted
cpio: dev/hda15: Cannot mknod: Operation not permitted
cpio: dev/sda9: Cannot mknod: Operation not permitted
cpio: dev/hda: Cannot mknod: Operation not permitted
cpio: dev/sdc1: Cannot mknod: Operation not permitted
cpio: dev/sdc11: Cannot mknod: Operation not permitted
cpio: dev/sdb2: Cannot mknod: Operation not permitted
cpio: dev/hdb3: Cannot mknod: Operation not permitted
cpio: dev/tty4: Cannot mknod: Operation not permitted
cpio: dev/loop8: Cannot mknod: Operation not permitted
cpio: dev/hdc3: Cannot mknod: Operation not permitted
cpio: dev/hdc: Cannot mknod: Operation not permitted
cpio: dev/sdc12: Cannot mknod: Operation not permitted
cpio: dev/sdb3: Cannot mknod: Operation not permitted
cpio: dev/sdc3: Cannot mknod: Operation not permitted
cpio: dev/hdd: Cannot mknod: Operation not permitted
cpio: dev/sdc13: Cannot mknod: Operation not permitted
cpio: dev/sdb14: Cannot mknod: Operation not permitted
cpio: dev/hdd8: Cannot mknod: Operation not permitted
cpio: dev/hda8: Cannot mknod: Operation not permitted
cpio: dev/ram: Cannot mknod: Operation not permitted
cpio: dev/hdc5: Cannot mknod: Operation not permitted
cpio: dev/hdb7: Cannot mknod: Operation not permitted
cpio: dev/sdd4: Cannot mknod: Operation not permitted
cpio: dev/sdc2: Cannot mknod: Operation not permitted
cpio: dev/sdc4: Cannot mknod: Operation not permitted
cpio: dev/sdc10: Cannot mknod: Operation not permitted
cpio: dev/sr0: Cannot mknod: Operation not permitted
cpio: dev/sdi: Cannot mknod: Operation not permitted
cpio: dev/sda7: Cannot mknod: Operation not permitted
cpio: dev/tty0: Cannot mknod: Operation not permitted
cpio: dev/tty3: Cannot mknod: Operation not permitted
cpio: dev/sdd5: Cannot mknod: Operation not permitted
cpio: dev/hda16: Cannot mknod: Operation not permitted
cpio: dev/hdb5: Cannot mknod: Operation not permitted
cpio: dev/hda3: Cannot mknod: Operation not permitted
cpio: dev/sda1: Cannot mknod: Operation not permitted
cpio: dev/sda15: Cannot mknod: Operation not permitted
cpio: dev/sda8: Cannot mknod: Operation not permitted
cpio: dev/sdf1: Cannot mknod: Operation not permitted
cpio: dev/sdd3: Cannot mknod: Operation not permitted
cpio: dev/hdb6: Cannot mknod: Operation not permitted
cpio: dev/sr3: Cannot mknod: Operation not permitted
cpio: dev/ram1: Cannot mknod: Operation not permitted
cpio: dev/scd1: Cannot mknod: Operation not permitted
cpio: dev/sdd2: Cannot mknod: Operation not permitted
cpio: dev/loop9: Cannot mknod: Operation not permitted
cpio: dev/sdf4: Cannot mknod: Operation not permitted
cpio: dev/hdc6: Cannot mknod: Operation not permitted
cpio: dev/sde: Cannot mknod: Operation not permitted
cpio: dev/scd2: Cannot mknod: Operation not permitted
cpio: dev/hdc2: Cannot mknod: Operation not permitted
cpio: dev/hda7: Cannot mknod: Operation not permitted
cpio: dev/hdb4: Cannot mknod: Operation not permitted
cpio: dev/hdd4: Cannot mknod: Operation not permitted
cpio: dev/sdc5: Cannot mknod: Operation not permitted
cpio: dev/fd0: Cannot mknod: Operation not permitted
cpio: dev/hdb8: Cannot mknod: Operation not permitted
cpio: dev/sdg2: Cannot mknod: Operation not permitted
cpio: dev/sdb11: Cannot mknod: Operation not permitted
cpio: dev/hdb: Cannot mknod: Operation not permitted
cpio: dev/sdb1: Cannot mknod: Operation not permitted
cpio: dev/hda10: Cannot mknod: Operation not permitted
cpio: dev/sdf8: Cannot mknod: Operation not permitted
cpio: dev/sdi2: Cannot mknod: Operation not permitted
cpio: dev/console: Cannot mknod: Operation not permitted
cpio: dev/sda3: Cannot mknod: Operation not permitted
cpio: dev/hda1: Cannot mknod: Operation not permitted
cpio: dev/sdf5: Cannot mknod: Operation not permitted
cpio: dev/sde7: Cannot mknod: Operation not permitted
cpio: dev/hda12: Cannot mknod: Operation not permitted
cpio: dev/hda6: Cannot mknod: Operation not permitted
cpio: dev/sdb13: Cannot mknod: Operation not permitted
cpio: dev/scd0: Cannot mknod: Operation not permitted
cpio: dev/loop7: Cannot mknod: Operation not permitted
cpio: dev/sde6: Cannot mknod: Operation not permitted
cpio: dev/sda2: Cannot mknod: Operation not permitted
cpio: dev/tty1: Cannot mknod: Operation not permitted
cpio: dev/hda2: Cannot mknod: Operation not permitted
cpio: dev/hdd5: Cannot mknod: Operation not permitted
cpio: dev/sdg1: Cannot mknod: Operation not permitted
cpio: dev/sdi1: Cannot mknod: Operation not permitted
cpio: dev/sda14: Cannot mknod: Operation not permitted
cpio: dev/sdb9: Cannot mknod: Operation not permitted
cpio: dev/sde2: Cannot mknod: Operation not permitted
cpio: dev/loop3: Cannot mknod: Operation not permitted
cpio: dev/sdf3: Cannot mknod: Operation not permitted
cpio: dev/sdd6: Cannot mknod: Operation not permitted
cpio: dev/fuse: Cannot mknod: Operation not permitted
cpio: dev/sde8: Cannot mknod: Operation not permitted
cpio: dev/sdb7: Cannot mknod: Operation not permitted
cpio: dev/hda11: Cannot mknod: Operation not permitted
cpio: dev/tty2: Cannot mknod: Operation not permitted
5445 blocks
What filesystem are you trying to do this on ? I think mine is running ext4 but I don’t quite remember.
Are you running it as root ?
I’ve never encountered that before but that’s the first two things that come to mind.
I was getting the same error. I used sudo in front of the command and still got the error until i realized that sudo was only applying to the first command and not the one after the |. Once I did sudo on both it worked perfectly. Thanks for the simple instructions, they work great once you realize you need root to mknod.
[…] Source and the full howto: http://sirlagz.net/2011/06/13/how-to-boot-puppy-5-2-5-over-pxe/ […]
Followed your concise and clear instructions, unsuccessful.
5.25 wont mount fs, kernel panic, unable to mount fs.
nvm, I was extracting the initrd.gz using gnome archive manager, heh, ok, so now I have the same error that bbmak0 got, I did everything as non root user, if that helps.
When booting via pxe I get as far as root swap then a kernel panic.
What version are you trying to PXE boot ? I’ll have a looksy when I have some time π
5.25 lupu the iso I downloaded was lupu-528.005.iso from yesterday.
Tell me, When I run zcat /tftpboot/puppy/initrd.gz | cpio -i -H newc -d should I be doing that as root? Because I ran it as non root user. As I usually do.
shouldn’t be an issue running as a normal user.
Yeah Im getting the same errors that bbmak0 was getting, unfortunately he didnt stick around long enough to share which version he was using, but it might just be the same version im using.
Error “Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(1,0)”
Looks like a few people having this issue. Maybe a new version of puppy had caused this ? I’ll have a look soonish…
the old method does not work any more with the new Puppies
Thanks for the tip.
I’ll look into how to PXE boot new puppies soon
I got this working with puppy slacko 5.5, but right before loading the sfs-file the is some red text and warnings about not being able to load hwclock and something else. Then it says “waiting 60 secs…” or something and continues to boot normally apparently.
I’m using virtualbox, but dont see this with the iso (or when trying to pxe boot the iso directly, but which fails at loading sfs of course).
Interesting. I currently don’t have my pxe booy environment anymore so I can’t test that out unfortunately.
Maybe try adding a wait to the boot arguments and see what happens ?
Ah, I forgot about the puppy boot menu. It doesn’t show, instead it goes directly to the red warning text.
see here: http://home.online.no/~g-ollivi/puppy.jpg
Great instructions and Thanks.
Did this with Lupu-528. Works greats.
FOG running on Fedora 19.
Following the instruction, I got a kernel panic. Anyone know why?
What version of Puppy were you trying to boot ?
Lucid Puppy
lupu-528.005.iso
As I understand it, cpio archives for initrd use can be concatenated, as long as those that are not last have a size that’s a multiple of 4096 bytes. So you could have done it simpler than this. But this is the golden path, I do agree with that.