Newer Older
1 2 3 4 5 6 7
This directory contains support for remote booting of PCs via Intel's PXE
(Preboot eXecution Environment) which is supported on ethernet cards like
the eepro100.

A client PC equipped with such a card and configured to boot from the network
first does the following:

8 9 10 11 12 13 14 15 16 17
1. The LAN card uses DHCP to get its IP info from a standard DHCP server.

2. PXE requires DHCP extensions, so a PXE-saavy DHCP server is required.
   ISC's DHCP V3 server can handle the extensions so we just use it.
   If you are using V2 of their server, you will need a "proxy" DHCP
   server to handle the PXE interaction.  See, for example, proxydhcp

3. The (proxy) DHCP server tells the client which boot program to download
   via TFTP and the client does so.
18 19 20 21

The above steps are not specific to the testbed.  Starting with the execution
of the downloaded boot program, a testbed specific protocol takes over:

Mike Hibler's avatar
Mike Hibler committed
22 23 24
4. The PXE-loaded boot program (pxeboot, a client built atop the FreeBSD
   standalone boot environment) speaks a custom hack UDP protocol
   ("defined" in bootwhat.h) with yet another server.
25 26 27 28

5. This server (bootinfo* in this directory) is responsible for determining,
   in a testbed-specific way, what action should be performed by the client.
   This action is either boot from a specific partition on the hard disk
29 30 31 32
   or download (via TFTP) a FreeBSD kernel and memory-based filesystem to
   run from.  The former is the typical case where the disk is already
   loaded and we are just booting an OS.  The latter (kernel+MFS) case is
   used in situations where we want to load (or save) the disk.
Mike Hibler's avatar
Mike Hibler committed
33 34 35
   Bootinfo has a variety of backends, tracing the evolutionary path of
   where it got its info from.  Currently we use the mysql backend which
   talks to our DB.
36 37

6. Finally, pxeboot transfers control either to the first-level boot code
   in the indicated hard disk partition or to the TFTP loaded kernel+MFS.
39 40 41

If you are interested in more general remote booting mechanisms see:
42 43 44

Last updated: Thu Jul 15 10:34:47 MDT 2004