PXEBOOT(7) Standards, Environments, and Macros PXEBOOT(7)
NAME
pxeboot - Preboot Execution Environment (PXE) bootloader
DESCRIPTION
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 10.0.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
option domain-name-servers 10.0.0.1;
server-name "DHCPserver";
server-identifier 10.0.0.1;
default-lease-time 120;
max-lease-time 120;
subnet 10.0.0.0 netmask 255.255.255.0 {
filename "pxeboot";
range 10.0.0.10 10.0.0.254;
if exists user-class and option user-class ~~ "illumos" {
option root-path "tftp://10.0.0.1/illumos";
}
}
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
[<scheme>://][<ip-address>/]<path>
...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/.
SEE ALSO
loader(7)illumos April 13, 2018 illumos