May 2009
The Etherboot crew and H. Peter Anvin of SysLinux have sort of merged PXELinux into Etherboot. This has resulted in gPXE, a boot loader that has all the features a humble sysadmin like me can dream up. In order to boot e.g. the Ubuntu Jaunty installer from the network, all that is needed is this:
Have a TFTP server, a DHCP server and an HTTP server ready. I assume you know how to do that. We assume that the DHCP server is in the broadcast domain of the booting host, the TFTP server is at 129.125.21.23 and the HTTP server is at 129.125.21.21.
On the DHCP server, configure a group
thusly:
group osis-gpxe { if exists user-class and option user-class = "gPXE" { # This is when gPXE is already loaded next-server 129.125.21.21; filename "http://boot.loader.rug.nl/boot/jaunty.php"; } else { # This is the first step: the PXE bootROM loads the gPXE second stage bootloader next-server 129.125.21.23; filename "/tftpboot/undionly.kpxe"; } host sandbox201 { hardware ethernet 00:11:22:33:44:55 ; fixed-address 10.0.34.201 ; } } # end group osis-gpxe
Apart from the usual requirements for serving TFTP to booting machines (those can be found all over the Web), the file tftpboot/undionly.kpxe must exist, relative to the TFTP root. The gPXE folks have put up a nice nice HOWTO.
On the HTTP server, have the following ready so that it gets served at the URL indicated in the DHCP config (i.c. http://boot.loader.rug.nl/boot/jaunty.php):
Note | |
---|---|
Note that the |
Note | |
---|---|
Also note that copy-pasting this example will not actually work, as boot.loader.rug.nl doesn't exist. |
Warning | |
---|---|
The machine I booted was behind a PF firewall with the booting client on interface scrub in all in |