====== 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> | ||