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/11 17:50] gluneau |
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 12: | Line 10: | ||
| filename "http://my.web.server/pxe.0"; | filename "http://my.web.server/pxe.0"; | ||
| + | {{ screenshots/uniboot1.png?360x200|Linux booting via HTTP}} | ||
| - | ===== Boot file content ===== | + | ===== Scalability ===== |
| - | You can use any of the commands found in the [[commandline|gPXE command line reference]] as instructions booting your OS. | + | 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 ===== | ||
| - | For example http://etherboot.com/gtest/gtest.gpxe file contains the following gPXE commands: | + | PXELINUX versions >= 3.70 can use gPXE-provided HTTP. (See syslinux/NEWS "Changes in 3.70") |
| - | #!gpxe | + | 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) |
| - | kernel http://etherboot.org/gtest/bz2bzImage root=100 | + | |
| - | initrd http://etherboot.org/gtest/initrd.bz2 | + | |
| - | boot | + | |
| - | or this will boot from iSCSI: | + | You can specify these options with your DHCP service or you can specify them in a gPXE script: |
| #!gpxe | #!gpxe | ||
| - | sanboot iscsi:192.168.2.23::::iqn.1994-04.org.netbsd.iscsi-target:target1 | + | 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 ===== | ||
| - | ===== Scalability ===== | + | Since SYSLINUX 3.85 there is also the option of using gpxelinux.0 with pxelinux.0 embedded, example: |
| - | + | <code text> | |
| - | 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! | + | #!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> | ||