PXEBOOT(7) Standards, Environments, and Macros PXEBOOT(7)


pxeboot - Preboot Execution Environment (PXE) bootloader


The pxeboot bootloader is a modified version of the system third-stage
bootstrap loader(7) configured to run under Intel's Preboot Execution
Environment (PXE) system. PXE is a form of smart boot ROM, built into
Ethernet cards, and Ethernet-equipped motherboards. PXE supports DHCP
configuration and provides low-level NIC access services.

The DHCP client will set a DHCP user class named illumos to allow flexible
configuration of the DHCP server.

The pxeboot bootloader retrieves the kernel, modules, and other files
either via NFS over UDP or by TFTP, selectable through DHCP options.

The pxeboot binary is loaded just like any other boot file, by specifying
it in the DHCP server's configuration file. Below is a sample
configuration for the ISC DHCP server:

option domain-name "example.com";
option routers;
option subnet-mask;
option broadcast-address;
option domain-name-servers;
server-name "DHCPserver";

default-lease-time 120;
max-lease-time 120;

subnet netmask {
filename "pxeboot";
if exists user-class and option user-class ~~ "illumos" {
option root-path "tftp://";

pxeboot recognizes next-server and option root-path directives as the
server and path to NFS mount for file requests, respectively, or the server
to make TFTP requests to. Note that pxeboot expects to fetch
/boot/loader.rc from the specified server before loading any other files.

Valid option root-path syntax is


...where "scheme" is either "nfs" or "tftp", "ip-address" is the address of
the server, and "path" is the path to the root filesystem on the server.
If "scheme" is not specified, pxeboot defaults to using NFS if the
root-path variable is in the "ip-address:/path" form, otherwise TFTP is
used. If no root-path option is set in the DHCP response, pxeboot defaults
to using TFTP.

pxeboot defaults to a conservative 1024 byte NFS data packet size. This
may be changed by setting the nfs.read_size variable in /boot/loader.conf.
Valid values range from 1024 to 16384 bytes.

TFTP block size can be controlled by setting the tftp.blksize variable in
/boot/loader.conf. Valid values range from 8 to 9008 bytes.

In all other respects, pxeboot acts just like loader(7).

For further information on Intel's PXE specifications and Wired for
Management (WfM) systems, see http://www.intel.com/design/archives/wfm/.



illumos April 13, 2018 illumos