NAME
pxeboot
—
amd64-specific second-stage PXE
bootstrap
DESCRIPTION
pxeboot
is a modified version of the amd64
second-stage bootstrap program,
boot(8), configured to run under Intel's Preboot Execution
Environment (PXE). PXE is a form of smart boot ROM, built into many Ethernet
cards from Intel, 3Com, and other manufacturers.
The computer's PXE boot ROM contacts a DHCP server by broadcasting
a request on the network. It gets an IP address from the DHCP server, then
it is told the name of the boot program to download — in this case,
the boot program is pxeboot
. The ROM downloads the
boot program using TFTP, then executes it.
The pxeboot
boot program will look for an
/etc/boot.conf configuration file on the TFTP
server. If it finds one, it processes the commands within it.
boot.conf processing can be skipped by holding down
either Control key as pxeboot
starts.
pxeboot
then sits in a loop, processing
commands given by the user. It accepts all the commands accepted by
boot(8).
If no commands are given for a short time,
pxeboot
will then attempt to load the
OpenBSD kernel bsd via TFTP.
It may be told to boot an alternative kernel, either by commands in the
boot.conf file, or by commands typed by the user at
the boot>
prompt. pxeboot
can be used for
diskless(8) setups or to load the bsd.rd
install kernel for network installs.
To prepare a server to support network booting, the
dhcpd(8) and
tftpd(8) services should be enabled and configured. It may help to
use the -s
option with
tftpd(8), to avoid confusion between files for the server's system
and files for the client system (note that -s
is set
by default in OpenBSD).
ftpd(8) or
httpd(8) should be enabled, depending on how the install sets will be
made available.
pxeboot
and the kernel should be copied
into the TFTP server's root directory (typically
/tftpboot). A boot.conf file
may be created if required (e.g.
/tftpboot/etc/boot.conf).
A sample configuration file for dhcpd(8) might be as follows:
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; next-server 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; }
Since amd64 systems boot up as i386 systems, their PXE ROMs
typically set the PXE client system architecture to be the same as for i386.
This means that the DHCP option
vendor-class-identifier
cannot, therefore, be used
to distinguish between i386 and amd64 systems.
Instead, the client machine identifier (UUID) or hardware Ethernet address (MAC) should be used. See dhcpd(8) and dhcpd.conf(5) for more information.
FILES
- /usr/mdec/pxeboot
- PXE-specific second-stage bootstrap
- /etc/boot.conf
pxeboot
configuration file (read from TFTP server)- /etc/dhcpd.conf
- DHCPD configuration file
- /tftpboot
- Default root directory for tftpd(8)
EXAMPLES
Boot the install kernel:
boot> bsd.rd
The same thing:
boot> boot
tftp:bsd.rd
SEE ALSO
dhcpd.conf(5), boot(8), boot_amd64(8), dhcpd(8), diskless(8), httpd(8), tftpd(8)
Intel Corporation, Preboot Execution Environment (PXE) Specification, Version 2.1, September 20, 1999.
HISTORY
The pxeboot
command first appeared in
OpenBSD 3.5.