====== Differences ====== This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
httpboot [2009/02/17 17:13] mcb30 typo |
httpboot [2010/10/14 04:39] (current) dali |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== HTTP booting ====== | ====== HTTP booting ====== | ||
- | |||
- | {{ screenshots/uniboot1.png?360x200|Linux booting via HTTP}} | ||
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 | 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 | ||
Line 11: | Line 9: | ||
filename "http://my.web.server/pxe.0"; | filename "http://my.web.server/pxe.0"; | ||
+ | |||
+ | {{ screenshots/uniboot1.png?360x200|Linux booting via HTTP}} | ||
===== Scalability ===== | ===== 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! | 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: | ||
+ | <code text> | ||
+ | #!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 | ||
+ | </code> | ||