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";

Linux booting via HTTP

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://webserver.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.