1 PXE is a standard for network booting of a machine that leverages
2 DHCP, TFTP, and a specialized bootloader.
4 It is possible to PXE boot a guest in Palacios in one of two ways. First,
5 the BIOS and/or virtual NIC firmware you use may directly support it.
6 The second option is to boot a tiny image that contains a PXE boot
7 engine, which is what is described here.
9 This technique was developed by Chen Kin, Bharath Pattabiraman,
10 and Patrick Foley during EECS 441 at Northwestern.
12 The Etherboot/gPXE project (http://etherboot.org/wiki/index.php) has
13 created a PXE boot engine that can be compiled into a variety of
14 forms (firmware, isos, etc). You can use rom-o-matic to create a custom
15 iso image: http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/
17 In this directory, the file gpxe-1.0.1-gpxe.iso is one such custom
18 iso image, one that includes all available NIC drivers. The file
19 gpxe.pal is an example of how to use such an image (the same as
20 any other bootable CD image).
22 In addition to booting from gpxe, your guest configuration must include
23 a NIC that gpxe can drive, and that NIC needs to attached to a network
24 on which the PXE server can be found. One approach is to use
25 a passthrough device. The following maps an NE2000 NIC available on
28 <device id="PCI_PASSTHROUGH" name="ne2k">
30 <vendor_id>0x10EC</vendor_id>
31 <device_id>0x8029</device_id>
35 Another possibility is to map a virtual NIC and bridge to a physical
38 <device class="RTL8319" id="rtl8139">
43 <device class="NIC_BRIDGE" id="nic_bridge">
44 <frontend tag="rtl8139" />
45 <hostnic name="eth0" />
48 A third possibility is to map a virtual NIC and bridge it to VNET.
49 See the technical report for more information on this.
51 Note that more recent versions of gpxe (1.0.1+) include support for
52 the paravirtualized virtio-nic. This is probably the kind of NIC you
55 Configuring a PXE server is outside the scope of this document, but
56 a related document available from our web site describes how to do so
57 to support PXE-based Kitten/Palacios development.