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
Size: 189 bytes
Desc: not available
Url : http://lists.debian-unofficial.org/pipermail/live/attachments/20060426/5f258b5c/attachment.pgp