User manual

Etherboot User Manual
Another possibility is to install a better tftp daemon like atftp at the Etherboot web site. This one can be
run as a standalone daemon, avoiding *inetd limitations and it multithreads internally.
5. Testing the network booting
Now when you start up Etherboot, it should obtain an IP address and print out what it received. If you do
not get this to work, turn on debugging in DHCPD and see if any query was received. You may also wish
to use the tcpdump or ethereal utilities to watch the network for DHCP packets (port bootps). If not,
check your network hardware (cables, etc). If a query was received, check if DHCPD was able to give an
answer. If not, then the Ethernet address was not found in
/etc/dhcpd.conf. If a reply was sent, then
only faulty hardware or a bug in Etherboot would prevent it being received by Etherboot.
Assuming an IP address was received, the next thing Etherboot tries to do is load a file using tftp. Check
your system logs to see if a tftp daemon was started up and a file requested. Generally if you run tftpd
under tcpwrapper security, a log entry will be generated. If not, it could be a path problem or file
permission problem (the file needs to be readable by tftpd). Another problem could be that tftpd needs to
reverse map the IP address to a name for security checking, and you don’t have the client’s details in
/etc/hosts or in DNS, or your tcpwrapper config files (/etc/hosts.deny, /etc/hosts/allow)do
not allow the access. Fix the problem.
After the boot image is loaded, Etherboot will jump to it. If it crashes here, check that the image is a boot
image. If it executes and stops at the point where it’s trying to mount NFS filesystems, then you need to
check your NFS mounts. Another common problem is the shared libraries on the NFS partition are not
suitable for your CPU, e.g. i586 libraries but a 486 diskless client.
5.1. Setting up an initrd filesystem
Recent advances in the Linux kernel (2.4 and above) have made the use of an initrd that does user space
autoconfiguration and mounting of a NFS root filesystem, followed by a pivot_root, a more flexible
alternative to kernel autoconfiguration and mounting of a NFS root filesystem. Postings on the kernel
mailing lists indicate that at some point in the future, kernel level autoconfiguration (BOOTP/DHCP
from the kernel) may be removed from the Linux kernel and initrds will be the recommended way to
start up a diskless system.
Until I have time to write detailed instructions on how to construct the initrd, I refer you to the LTSP
distribution (http://www.ltsp.org/) which uses this technique. Mknbi supports initrds, see the ramdisk
argument of mkelf-linux (../mknbi.html). The Linux kernel documentation describes the extra arguments
should be passed to the kernel to make it use an initrd, and how to arrange the initrd so that the startup
script within it is called when it’s mounted. If the initrd mounts a NFS root filesystem then it should still
have all the needed structure as explained in the next section.
Initrds can also be used for mounting other network filesystems instead of NFS root. Some applications
could even run totally out of initrd, e.g. Floppy Firewall (http://www.zelow.no/floppyfw/), provided you
have the memory, of course.
9