---
name: "pxeboot"
section: "8"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["freebsd", "openbsd"]
url: "https://new.carta.tech/pxeboot"
---

# pxeboot(8)

amd64-specific second-stage PXE bootstrap

## NAME

**pxeboot** – amd64-specific second-stage PXE bootstrap

## DESCRIPTION

**pxeboot** is a modified version of the amd64 second-stage bootstrap program, [boot(8)](/boot/8.md), 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)](/boot/8.md).

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)](/diskless/8.md) setups or to load the *bsd.rd* install kernel for network installs.

To prepare a server to support network booting, the [dhcpd(8)](/dhcpd/8.md) and [tftpd(8)](/tftpd/8.md) services should be enabled and configured.

**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)](/dhcpd/8.md) 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)](/dhcpd/8.md) and [dhcpd.conf(5)](/dhcpd.conf/5.md) 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*

  Typical root directory for [tftpd(8)](/tftpd/8.md)

## EXAMPLES

Boot the install kernel:

```
boot bsd.rd
```

The same thing:

```
boot boot tftp:bsd.rd
```

## SEE ALSO

[dhcpd.conf(5)](/dhcpd.conf/5.md), [boot(8)](/boot/8.md), [boot\_amd64(8)](/boot_amd64/8.md), [dhcpd(8)](/dhcpd/8.md), [diskless(8)](/diskless/8.md), [tftpd(8)](/tftpd/8.md)

## STANDARDS

Intel Corporation, *Preboot Execution Environment (PXE) Specification*, Version 2.1, September 20, 1999.

## HISTORY

The **pxeboot** command first appeared in OpenBSD 3.5.
