RBOOTD(8)

πŸ“¦
version 3.4 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– RBOOTD πŸ’– β€” the HP remote boot server, bestie edition

okay so real talk, rbootd is section 8 of the System Manager's Manual and it's giving ancient network sorcery, but honestly? iconic. let's get into it πŸŽ€


✨ NAME ✨

rbootd β€” HP remote boot server πŸ‘‘


🌸 SYNOPSIS 🌸

rbootd [-ad] [-i interface] [config_file]

πŸ¦‹ DESCRIPTION πŸ¦‹

so the rbootd utility services boot requests from Hewlett-Packard workstations over a local area network. that's the whole gig bestie, it's the plug that hands out boot files πŸ“‘

the rules tho, and these matter:

  • All boot files must reside in the boot file directory. no exceptions, no sneaking files in from elsewhere πŸ’…
  • if a client supplies path information in its boot request, it will be silently stripped away before processing. like, not even a warning, it's just gone πŸ«₯
  • By default, rbootd only responds to requests from machines listed in its configuration file. so if you're not on the list? you're not getting in πŸ™…β€β™€οΈ

The options are as follows:

  • -a β€” Respond to boot requests from any machine. ngl this one is a little unhinged because the configuration file is ignored if this option is specified. like fully ignored. bye πŸ‘‹
  • -d β€” Run rbootd in debug mode. Packets sent and received are displayed to the terminal. so you can literally watch the tea get spilled in real time 🍡
  • -i interface β€” Service boot requests on specified interface. If unspecified, rbootd searches the system interface list for the lowest numbered, configured `up` interface (excluding loopback). Ties are broken by choosing the earliest match. very "first come first served" of it ✨

Specifying config_file on the command line causes rbootd to use a different configuration file from the default. main character move, honestly πŸ’–


πŸ“ the configuration file πŸ“

The configuration file is a text file where each line describes a particular machine. Here's the breakdown bestie:

  • A line must start with a machine's Ethernet address, followed by an optional list of boot file names.
  • An Ethernet address is specified in hexadecimal with each of its six octets separated by a colon.
  • The boot file names come from the boot file directory.
  • The ethernet address and boot file(s) must be separated by white-space and/or comma characters.
  • A pound sign (#) causes the remainder of a line to be ignored. very "this is not for you" energy πŸ™ˆ

Here is a sample configuration file:

#
# ethernet addr     boot file(s)        comments
#
08:00:09:0:66:ad    SYSHPBSD            # snake (4.3BSD)
08:00:09:0:59:5b                        # vandy (anything)
8::9:1:C6:75        SYSHPBSD,SYSHPUX    # jaguar (either)

look at jaguar getting either boot file, we love a flexible queen πŸ†βœ¨


πŸ“’ logging & errors πŸ“’

rbootd logs status and error messages via syslog(3). here's the vibe:

  • A startup message is always logged. it's the "i have arrived" moment πŸ’…
  • in the case of fatal errors (or deadly signals) a message is logged announcing the server's termination. dramatic but deserved πŸ’€
  • In general, a non-fatal error is handled by ignoring the event that caused it β€” e.g. an invalid Ethernet address in the config file causes that line to be invalidated. so it just... pretends it didn't see that 😭

⚑ SIGNALS ⚑

The following signals have the specified effect when sent to the server process using the kill(1) command:

  • SIGHUP β€” Drop all active connections and reconfigure. it's giving "we're starting over" πŸ”„
  • SIGUSR1 β€” Turn on debugging, do nothing if already on. no double-debugging, that's illegal 🚫
  • SIGUSR2 β€” Turn off debugging, do nothing if already off. symmetric queen πŸ‘‘

πŸ“ FILES πŸ“

  • /etc/rbootd.conf β€” configuration file
  • /tmp/rbootd.dbg β€” debug output
  • /var/lib/rbootd β€” directory containing boot files
  • /var/run/rbootd.pid β€” process id

πŸ‘€ SEE ALSO πŸ‘€

kill(1), socket(2), signal(3), syslog(3),

iykyk, go read those next, they're the supporting cast 🫢


πŸ› BUGS πŸ›

okay bestie, listen up because this part is important:

  • If multiple servers are started on the same interface, each will receive and respond to the same boot packets. chaos. actual chaos. πŸ’€
  • The interface should be specified in a configuration file rather than having to be put on the command line as an argument. so like, ideally we wouldn't be doing this the hard way, but here we are πŸ˜”
  • Also the location of the boot images is hardcoded into the binary at compile time. yeah. no cap. you cannot change it without recompiling, so plan accordingly 🧚

fr fr, this page is old old. like, older than most of the internet. respect the elders πŸŽ€

and that's the whole page bestie!! this came to you from the Debian edition of the manual, dated December 11, 1993 β€” yeah, a real vintage drop πŸ‘‘πŸ’œ slay, go boot something πŸ¦‹βœ¨

πŸ“¦ where this page comes from