Jun 132011
 

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 !

Share

  30 Responses to “How To : Boot Puppy 5.2.5 over PXE”

  1. 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

  2. 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

  3. need help for install Boot Puppy 5.2.5 over PXE

  4. 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.

  5. 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.

  6. 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).

  7. Great instructions and Thanks.
    Did this with Lupu-528. Works greats.
    FOG running on Fedora 19.

  8. Following the instruction, I got a kernel panic. Anyone know why?

  9. Lucid Puppy
    lupu-528.005.iso

  10. 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.

Leave a Reply to stenor Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.