| BOOTD(8) | System Manager's Manual | BOOTD(8) |
NAME
bootd — boot
server for old and unusual machines
SYNOPSIS
bootd |
[run] [-c
config] |
bootd |
check [-c
config] [-q] |
bootd |
explain [-c
config] client
[service [file]] |
bootd |
version |
DESCRIPTION
bootd network-boots old and unusual
machines over many boot protocols, all set up from one configuration file,
bootd.hcl(5). Each client is
described once, with its addresses, the protocols it may use and the files
it may load, and every protocol answers from that one description. Every
request that is refused is logged with the reason.
The protocols are:
rarp- Reverse ARP, for Sun, DEC, HP and other clients that learn their IP address from their Ethernet address.
rmp- HP Remote Maintenance Protocol, for the boot ROMs of the HP 9000/300 and /400.
nd- Sun Network Disk, for the Sun-2 boot PROM. Read only.
tftp- TFTP, read only, with the blksize, tsize and timeout options.
bootparam- Sun bootparam, with a built-in portmapper that answers broadcast
CALLITrequests. nfs- NFS version 2 and MOUNT version 1 over UDP, read only.
nis- NIS (YP), read only, without map transfers.
bootd works on Ethernet frames and runs
its own IP stack, with its own Ethernet and IP address on each network. It
answers ARP itself and knows the Ethernet address of every configured host,
so it reaches clients that do not answer ARP before their operating system
runs. It needs no privileges and does not use the host's addresses or
ports.
A network carries frames over UDP, one Ethernet frame per datagram
(the format of the HECnet bridge, which simh and QEMU speak), optionally
wrapped in static L2TPv3.
bootbridge(8) connects a real
network interface to it; emulators can send to bootd
directly. A network can also capture on an interface with libpcap, which
needs privileges.
The commands are:
run- Run the boot server. This is the default when no command is given. It runs in the foreground and logs to standard error unless the configuration says otherwise.
check- Validate the configuration, reporting errors and warnings with file and line, then list every host with its addresses (and where they came from), services and files.
explainclient [service [file]]- Show how a request from client, a host name, Ethernet address or IP address, would be handled, following it through the same lookups the protocols use: which host it matches, and that host's addresses, services and files. With service, also whether the service is enabled and allowed for the host, and which file it would serve; with file, which file a request for that name would get.
version- Print the version.
The options are:
SIGNALS
FILES
- /etc/bootd.hcl
- The default configuration file.
- /etc/ethers
- Ethernet addresses of hosts that do not give one, see ethers(5).
- /var/lib/bootd
- The root for boot files in the Debian and Ubuntu packages.
- /usr/local/etc/bootd.hcl
- The configuration file of the macOS package and of Homebrew on Intel Macs.
EXIT STATUS
bootd exits 0 on success and 2 for invalid
usage. It exits 1 if the configuration has errors or the server fails, and
explain exits 1 if the request would be refused.
EXAMPLES
Check a configuration and list what it serves:
$ bootd check -c
bootd.hclShow how a TFTP request for a SPARCstation's boot program would be handled:
$ bootd explain kali tftp
C0A80105.SUN4CConnect the Ethernet interface en0 to a
bootd on the same machine, then run
bootd:
# bootbridge -i en0 -listen 127.0.0.1:4711 -peer 127.0.0.1:4712 $ bootd -c bootd.hcl
with this network in the configuration:
network "lab" {
address = "192.168.1.250/24"
udp = "127.0.0.1:4712"
peers = ["127.0.0.1:4711"]
}
Attach simh or QEMU to the same bootd:
sim> attach xq udp:4713:127.0.0.1:4712
qemu-system-sparc ... -netdev dgram,id=n0,local.type=inet,\
local.host=127.0.0.1,local.port=4713,remote.type=inet,\
remote.host=127.0.0.1,remote.port=4712
SEE ALSO
STANDARDS
A Reverse Address Resolution Protocol, RFC 903. The TFTP Protocol (Revision 2), RFC 1350. NFS: Network File System Protocol Specification, RFC 1094. Layer Two Tunneling Protocol - Version 3 (L2TPv3), RFC 3931.
HISTORY
bootd is a Go reimplementation of an
earlier bootd. It is not a drop-in replacement.
AUTHORS
Rico Pajarola <rp@servium.ch>
BUGS
NFS, ND and TFTP are read only: writable exports and disks are not written to. NIS cannot transfer maps to slave servers, and does not make netgroup.byuser and netgroup.byhost.
| October 14, 2026 | Ubuntu |