Table of Contents
HTTP booting
Booting from HTTP with gPXE is as simple as replacing the DHCP filename field with an http:// URL. For example, if you currently have /etc/dhcpd.conf containing
next-server my.tftp.server; filename "/pxe.0";
then you can just copy pxe.0 to your web server and edit /etc/dhcpd.conf to contain
filename "http://my.web.server/pxe.0";
Scalability
HTTP can handle much larger files than TFTP, and scale to much larger distances. You can easily download multi-megabyte files, such as a Linux kernel and a root filesystem, and you can download from servers that are not on your local area network. We have successfully tested booting across the Atlantic using HTTP!
Using PXELINUX
PXELINUX versions >= 3.70 can use gPXE-provided HTTP. (See syslinux/NEWS “Changes in 3.70”)
By default, PXELINUX will look for its configuration file using TFTP. To override this behaviour, you can specify DHCP options 209 and/or 210. (See syslinux/doc/rfc5071.txt)
You can specify these options with your DHCP service or you can specify them in a gPXE script:
#!gpxe echo Performing DHCP on first network interface dhcp net0 set 209:string pxelinux.cfg/default set 210:string http://example.com/ chain ${210:string}pxelinux.0
The 'chain' command above will be expanded by gPXE to:
chain http://example.com/pxelinux.0
and the chained-to PXELINUX will look for its configuration file using the 210 prefix. All relative paths specified in the PXELINUX configuration file will also have this prefix prepended to them.
Using gpxelinux.0
Since SYSLINUX 3.85 there is also the option of using gpxelinux.0 with pxelinux.0 embedded, example:
#!gpxe echo Performing DHCP on first network interface dhcp net0 set 209:string pxelinux.cfg/default set 210:string http://example.com/ imgload pxelinux.0 boot pxelinux.0