[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

work needed for network booting Debian Live


As promised, though late, I am joining the project to add support for network 
booting to Debian Live. My company, Safedesk Solutions, employs myself and 
also Mike Angelo (who posted to this list previously) to make this happen.

Presently we are distributing a modified version of Knoppix to our customers. 
This modified version uses exactly the same SquahsFS file "KNOPPIX/KNOPPIX" 
that is found on the Knoppix ISO but we are using a combination four things 
to make it network boot to clients:

  * DHCP config file modifications
  * TFTP to serve out pxelinux, the knoppix kernel, and the initrd
  * A Samba server w/ CIFS extentions to serve the root filesystem
  * An initrd with mount.cifs added and a custom linuxrc which causes it to
    mount the filesystem from the server (getting the IP from a boot param.)

However, there are a few headaches with Knoppix:
  * The init/boot process is so dissimilar from that of any other distro that
    it is difficult to work with (take 45xsession for example)
  * Making changes to the SquashFS filesystem requires an inordinate amount of 
    time (this is what you would do to make changes to the root filesystem)

 From my perspective, Debian Live can solve these problems for us (or anyone 
else who wishes to try).

Here is what needs to be done so that a "make-live net" option can exist:

1. A mechanism to change the values in $CHROOT/etc/mkinitramfs/initramfs.conf 
of MODULES= to "netboot" and BOOT= to "net".

2. A new script in $CHROOT/usr/share/initramfs-tools/scripts/ that is very 
similar to "casper" but instead of searching for a cdrom to mount, it 
attempts to mount the root file system to from the server.

3. A new script that, when using 'make-live net', is used instead of
of iso.sh in /usr/share/make-live/scripts/. In a network environment, there is 
no compelling need for a SquashFS image of the root filesystem; a flat 
directory structure will do. This new script will neither create a SquashFS 
NOR an ISO. Instead, it will generate "recommended" changes to the server's 
dhcpd.conf and also create/copy the files that need to go in /tftpboot/ 
including a copy of the pxelinux loader and a recommended boot config file 
called pxelinux.cfg/default. pxelinux.cfg/default will contain a 
boot=casper-net instead of the boot=casper used in the existing "make-live 

4. And finally, a slightly more difficult part, a hack to the existing 
initramfs-tools to make it include mount.cifs and the cifs kernel module. We 
use cifs+Unix extentions because, after years of having problems with NFS's 
fragmented packet reassembly protocol and certain switch vendors (Cisco and 
3COM), we have found that Samba+CIFS+Unix extentions outperforms, is more 
reliable, and has all the required features needed for a root filesystem.

As you can see the changes needed are very small and shouldn't adversely 
affect any work going on on the ISO aspect.

Not having the rootfs stored in a SquashFS file has the added benefit of 
allowing the system administrator on the server the ability to chroot in to 
the client's root FS and install and configure packages as they desire.

What are your thoughts? What do we need to do to get these changes 
incorporated in to debian-live? 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.debian-unofficial.org/pipermail/live/attachments/20060426/5f258b5c/attachment.pgp

Reply to: