Simplified Net-booting (Booting Puppy Linux via your LAN)
Posted: Fri 16 Nov 2007, 03:53
Net-booting has been here in Puppy Linux since version 2.16, so you might as well try it in a few steps:
1. Get TFTP for Windows from here. Unzip to an appropriate location in a Windows PC in your LAN. (It will have a directory /pxe.)
2. Download initrd-humongous-2.16.1-93952k.gz from ibiblio or its mirrors (see http://puppylinux.net/download/downpage.htm ). Rename to initrd.gz and put in the /pxe directory (see #1).* [EDIT - as of June 11, 2008, this file is no longer in the Puppy repositories. See Barry's instructions in creating a humongous initrd below.]
3. Start TFTPD32.exe. Tell Windows to allow it through the firewall (if firewall is activated). Change some IP numbers like IP pool starting address and Default router (see image below) then save and restart.
4. Connect to the LAN a client PC, set it to boot from PXE/network, and restart it.
4.a Puppy will look for the zdrv_216.sfs file*, so plug in a USB drive (with zrdv) while net-booting, or first make sure that zdrv is in the hard disk. You can use a save file and extra sfs, just like locally-booted Puppy.
* The available initrd-humongous-2.16.1-93952k.gz has no zdrv_216.sfs in it. To roll your own initrd, see the reproduction of Barry's news page below (quoted).
Notes: Thanks to Philippe Jounin for TFTPD and Mark Hinge for the how to, Steven Shiau for net-booting help, and Barry Kauler for everything.
- Windows is used as server for simple deployment. Even Win98SE should work (98SE has Internet Connection Sharing, so it can function as the router, too).
- The client PC should have more than 128 MB RAM (256 MB RAM is recommended).
- The Windows PC (server) should have a fast ethernet card (this is generally valid in WinXP PCs).
- Net-booting of Puppy Linux works given certain changes in Puppy's init (in initrd.gz). Versions before and after 2.16 are not known to be ready for net-booting.
------------------------------------
Barry's news page about creating humongous initrd.gz:
1. Get TFTP for Windows from here. Unzip to an appropriate location in a Windows PC in your LAN. (It will have a directory /pxe.)
2. Download initrd-humongous-2.16.1-93952k.gz from ibiblio or its mirrors (see http://puppylinux.net/download/downpage.htm ). Rename to initrd.gz and put in the /pxe directory (see #1).* [EDIT - as of June 11, 2008, this file is no longer in the Puppy repositories. See Barry's instructions in creating a humongous initrd below.]
3. Start TFTPD32.exe. Tell Windows to allow it through the firewall (if firewall is activated). Change some IP numbers like IP pool starting address and Default router (see image below) then save and restart.
4. Connect to the LAN a client PC, set it to boot from PXE/network, and restart it.
4.a Puppy will look for the zdrv_216.sfs file*, so plug in a USB drive (with zrdv) while net-booting, or first make sure that zdrv is in the hard disk. You can use a save file and extra sfs, just like locally-booted Puppy.
* The available initrd-humongous-2.16.1-93952k.gz has no zdrv_216.sfs in it. To roll your own initrd, see the reproduction of Barry's news page below (quoted).
Notes: Thanks to Philippe Jounin for TFTPD and Mark Hinge for the how to, Steven Shiau for net-booting help, and Barry Kauler for everything.
- Windows is used as server for simple deployment. Even Win98SE should work (98SE has Internet Connection Sharing, so it can function as the router, too).
- The client PC should have more than 128 MB RAM (256 MB RAM is recommended).
- The Windows PC (server) should have a fast ethernet card (this is generally valid in WinXP PCs).
- Net-booting of Puppy Linux works given certain changes in Puppy's init (in initrd.gz). Versions before and after 2.16 are not known to be ready for net-booting.
------------------------------------
Barry's news page about creating humongous initrd.gz:
Addition: ramdisk_size is set in pxelinux.cfg/default. Get the number by multiplying the size in MB of initrd by 1,048 = ramdisk_size in KB, which should be adequate for PXE-booting. Experiment with less size by reducing it then rerun PXE-booting.Thursday, May 24, 2007, 07:45 PM
Tweaking the humongous-initrd
Raffy posted this forum message to invite participation:
http://www.murga-linux.com/puppy/viewtopic.php?t=18421
If you want to build your own humongous initrd, it is very easy. Just download 'puppy-unleashed-core-2.16.1.tar.gz' and expand it inside a ext2/ext3/reiserfs hd partition:
# tar -zxf puppy-unleashed-core-2.16.1.tar.gz
You will then have a directory 'puppy-unleashed', inside you will find 'boot' directory, and inside that 'initrd-tree' directory.
Mount the 2.16.1 live-CD, or use Isomaster to open up the 'puppy-2.16.1-seamonkey-fulldrivers.iso' and copy 'pup_216.sfs' and 'zdrv_216.sfs' into puppy-unleashed/boot/initrd-tree.
Open a terminal window in puppy-unleashed/boot and execute:
# ./makeext2initrd
That's it, you will have created a humongous initrd.gz!
Note, initrd-tree/init is a script but it is not used and gets removed by the makeext2initrd script -- that one is for an initramfs. The bootup script that is used is sbin/init and that's where all the tweaking will occur.
BarryK
Thursday, May 24, 2007, 08:20 PM
If you download the PET packages into 'packages' directory and follow instructions in the README, you can build a humongous initrd, that is a 'zdrv_216.sfs' with a cutdown set of drivers, or a 'pup_216.sfs' with a cutdown set of drivers built-in (no zdrv file). This could be used to reduce the size of the humongous initrd.
Raffy
Thursday, May 24, 2007, 08:53 PM
Thanks, Barry, this is a fun way to get started with "unleashed" - building one's unique Puppy.