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

pxebootPreboot 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/.


April 13, 2018 OmniOS