Rolling Out Unattended Debian Installations (Part 2)
Giving Clients The Boot
Last week, Part 1 covered the basic configuration for a Debian FAI (Fully Automatic Installation) server. Today we'll configure the client installations--network server settings, what software is going to be installed, and the client boot methods. FAI supports network booting, which is fast and easy when it works. FAI also supports booting the clients from FAI boot diskettes.
Most modern network cards and mainboards support network booting. For example, the Linksys LNE100TX, LNE100M, the D-Link DFE 500 series, Netgear FA312, Intel PRO/100, most 3Com cards, and most IBM network adapters support netbooting. There are three parts to enabling netbooting. First, you need an NIC and mainboard that support netbooting.
Secondly, you need to enable netbooting in the system BIOS, and make sure the NIC is the second boot device. Make the hard drive the first boot device. This is for systems with no operating system installed; on the first boot, it will not be able to boot from the hard drive so it will go to the second boot device. Then when you reboot after installation, it will boot from the hard drive. There are special instructions for 3Com cards, and of course check the documentation for your own hardware.
The last part is sending boot information over the network to the client PCs. The client PCs pick up an IP address, kernel, and a root filesystem from the FAI server. Obviously this is a chicken-and-egg situation when you are preparing to install Debian on clients with no operating system installed. The trick to this is collecting MAC addresses from the client PCs, then configuring dhcpd.conf on the FAI server to assign hostnames and IPs to each MAC address.
If you wish to install on PCs that already have an operating system, no problem, the FAI installer will overwrite everything. Just remember to set the BIOS order for netboot, then change it after installation to boot from the hard drive.
To set up FAI for netbooting, first install syslinux if it isn't already installed. Then create the FAI bootfiles:
#fai-chboot -IFv workstation1 workstation2 workstation3
Yes, you must name every host. Then make this entry in /etc/inetd.conf:
tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /boot/fai