16.12. Setting Up a Debian PXE Netboot Server

You want a Debian boot server so you can perform network installations without an installation CD or USB flash device. Your PCs have network interfaces that support netbooting, or they have Etherboot diskettes, and you have configured the appropriate BIOS settings, so your clients are ready. You have your local Debian mirror all set up and ready to go.

What else do you need to do?

Your Debian mirror server needs to be PXE-netboot enabled. You'll need these packages:

	# aptitude install tftpd-hpa dhcp3-server

Next, download netboot/netboot.tar.gz from your favorite Debian mirror into /var/lib/tftpboot, and unpack it there:

	# wget http://debian.uchicago.edu/debian/dists/etch/main/installer-\
	i386/current/images/netboot/netboot.tar.gz
	# tar zxvf netboot.tar.gz

You must edit /etc/default/tftpd-hpa to say:

	RUN_DAEMON="yes"

And, you need a simple configuration in /etc/dhcp3/dhcpd.conf:

	##dhcpd.conf
	allow booting;
	allow bootp;

	subnet 192.168.1.0 netmask 255.255.255.0 {
	          option subnet-mask 255.255.255.0;
	          option broadcast-address 192.168.1.255;
	          range dynamic-bootp 192.168.1.175 192.168.1.240;
	          next-server 192.168.1.40;
	          filename "pxelinux.0";
	}

Start up the new servers like this:

	# /etc/init.d/dhcp3-server start
	# /etc/init.d/tftpd-hpa start

Now, power up a PXE netboot-enabled client, and in a few moments, you should see the Debian installation menu:

	- Boot Menu -
	=============

	etch_i386_install
	etch_i386_linux
	etch_i386_expert
	etch_i386_rescue

If you're running Dnsmasq instead of dhcpd, you need to add only a single line in dnsmasq.conf to enable netbooting:

	dhcp-boot=pxelinux.0,cracker,192.168.1.40

Then, restart Dnsmasq:

	# /etc/init.d/dnsmasq restart

If you're running some other Debian release than Etch, you'll need to use the netboot.tar.gz that is specific to that release.