bootadm(8) on Solnix vs Linux and the BSDs

bootadm is the illumos tool at /usr/sbin/bootadm (also /sbin/bootadm). It manages the boot archive, installs the boot loader onto a ZFS pool, and edits the x86 boot menu. The counterparts are different tools: the page documents no UEFI boot-variable editing like efibootmgr, and no raw disk or device argument like installboot or grub-install. It takes a pool name.

What Solnix runs

A default Solnix system runs the illumos bootadm. No other variants are shipped. Several subcommands are x86-only: install-bootloader and the boot menu (set-menu, list-menu) are documented for x86 boot environments, and -M is an error on non-x86 systems. On OpenBoot PROM machines such as SPARC, boot behaviour is set with PROM variables managed by eeprom(8). The page's SEE ALSO also lists beadm(8), boot(8), installboot(8) and menu.lst(5).

Differences

Compared withTopicWhat differs
all fourwhat the tool managesbootadm manages the boot archive (update-archive, list-archive), installs the boot loader on a ZFS pool, and edits the boot menu. None of the counterpart pages in the bundle describe a boot archive. bootctl, efibootmgr and installboot cover other tasks.
Source: Solnix bootadm(8) SYNOPSIS, DESCRIPTION; Linux bootctl(1) DESCRIPTION; FreeBSD efibootmgr(8) DESCRIPTION; OpenBSD installboot(8) DESCRIPTION; NetBSD installboot(8) DESCRIPTION
Linux, OpenBSD, NetBSDtarget of the bootloader installbootadm install-bootloader takes a ZFS pool with -P. Without -P it uses the pool the system booted from, and -P is required if it did not boot from a pool. OpenBSD installboot takes a disk, NetBSD a filesystem, and grub-install an INSTALL_DEVICE.
Source: Solnix bootadm(8) install-bootloader, -P; OpenBSD installboot(8) SYNOPSIS (disk); NetBSD installboot(8) SYNOPSIS (filesystem); Linux grub-install(8) INSTALL_DEVICE
Linux, FreeBSDUEFI boot variablesefibootmgr (Linux and FreeBSD) creates, deletes and orders UEFI Boot entries and sets BootNext. The bootadm page mentions no UEFI variables, boot entries or BootNext. Its set-menu changes only the default entry and timeout in the boot menu.
Source: Linux efibootmgr(8) DESCRIPTION, -c, -o, -n; FreeBSD efibootmgr(8) DESCRIPTION; Solnix bootadm(8) set-menu key=value
all four-n meaningbootadm -n checks archive content without updating it (update-archive). OpenBSD and NetBSD installboot -n is a dry run. On Linux efibootmgr, -n XXXX sets BootNext, and FreeBSD -n --bootnext does the same. FreeBSD's dry run is -D.
Source: Solnix bootadm(8) -n; OpenBSD installboot(8) -n; NetBSD installboot(8) -n; Linux efibootmgr(8) -n; FreeBSD efibootmgr(8) -n, -D
Linux, FreeBSD, NetBSD-f meaningbootadm -f forces archive regeneration (update-archive) or overrides boot loader versioning constraints (install-bootloader). Linux efibootmgr -f re-connects devices. FreeBSD efibootmgr -f requests the firmware UI. NetBSD installboot -f ignores some errors.
Source: Solnix bootadm(8) -f; Linux efibootmgr(8) -f, --reconnect; FreeBSD efibootmgr(8) -f, --fw-ui; NetBSD installboot(8) -f
Linux, OpenBSD-R and -p meaningbootadm -R altroot applies the operation to an alternate root; -p platform needs -R and must be i86pc, sun4u or sun4v. On bootctl, -R prints the root device (alternate root is --root=), and -p prints the ESP path. OpenBSD uses lowercase -r root, and its -p prepares the boot filesystem.
Source: Solnix bootadm(8) -R, -p; Linux bootctl(1) -R, -p, --root; OpenBSD installboot(8) -r, -p
all four-M, -P and other single-letter flagsbootadm -M also installs to the MBR (x86 only) and -P names the pool. On Linux efibootmgr, -M sets mirrored memory above 4GB. -c on efibootmgr creates an entry, on OpenBSD sets the default boot disk, and on NetBSD clears the bootstrap. bootadm has no -c.
Source: Solnix bootadm(8) -M, -P; Linux efibootmgr(8) -M, -c; FreeBSD efibootmgr(8) -c; OpenBSD installboot(8) -c; NetBSD installboot(8) -c
Linux, FreeBSDboot menu timeout and defaultbootadm set-menu timeout=seconds sets the auto-boot timeout, where -1 disables auto boot. default=entrynum picks the menu item. Linux and FreeBSD efibootmgr set the timeout with -t and order entries with -o. FreeBSD -T deletes the timeout.
Source: Solnix bootadm(8) key=value (default, timeout); Linux efibootmgr(8) -t, -o; FreeBSD efibootmgr(8) -t, -T, -o
all fourmenu file locationlist-menu reports the boot menu, normally /<boot pool root dataset mountpoint>/boot/menu.lst. The counterpart pages describe firmware variables, an ESP (bootctl checks /efi/, /boot/ and /boot/efi/ in turn) or bootstrap blocks, not a menu.lst file.
Source: Solnix bootadm(8) DESCRIPTION (list-menu); Linux bootctl(1) --esp-path; FreeBSD efibootmgr(8) DESCRIPTION
NetBSDUEFI installsNetBSD says installboot is not needed for UEFI boot, which uses a loader in the EFI system partition. The bootadm page does not describe UEFI; it documents installing the loader to the disks of a ZFS pool.
Source: NetBSD installboot(8) UEFI boot; Solnix bootadm(8) install-bootloader
all four-v and -o meaningbootadm -v prints stale files on stderr (update-archive) or task output (install-bootloader). -o key=value picks the menu entry to inspect in list-menu. On efibootmgr, -o sets BootOrder. On NetBSD installboot, -o gives machine-specific options.
Source: Solnix bootadm(8) -v, -o; Linux efibootmgr(8) -o; FreeBSD efibootmgr(8) -o, -v; NetBSD installboot(8) -o
all fourexit statusbootadm returns 0 on success and 1 on error. The bundle shows no EXIT STATUS section for the counterpart pages, so their exit values cannot be compared.
Source: Solnix bootadm(8) EXIT STATUS; counterpart pages in bundle

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
install or repair the boot loaderbootadm install-bootloader [-P pool]grub-install INSTALL_DEVICE; bootctl (install command)—installboot diskinstallboot filesystem primary [secondary]
regenerate the boot archivebootadm update-archive————
set boot menu timeoutbootadm set-menu timeout=secondsefibootmgr -t secondsefibootmgr -t timeout——
choose default boot entrybootadm set-menu default=entrynumefibootmgr -o XXXX,YYYYefibootmgr -o bootorder——
show boot entriesbootadm list-menubootctl statusefibootmgr -v——
dry runbootadm update-archive -nbootctl --dry-runefibootmgr -Dinstallboot -ninstallboot -n
operate on an alternate rootbootadm ... -R altrootbootctl --root=root—installboot -r root—

Standards

  • POSIX: bootadm is not a POSIX.1-2024 utility.
  • Solnix: Interface Stability: Committed.
  • FreeBSD: efibootmgr(8) STANDARDS: the Unified Extensible Firmware Interface Specification is available from www.uefi.org.

Writing portable scripts

  • Do not share boot-loader scripts across these systems: the tools, targets (ZFS pool, disk, filesystem, ESP) and flags differ. Branch on which tool exists.
  • Avoid -n, -f, -p and -R in cross-system boot scripts. Each means something different in bootadm, efibootmgr, bootctl and installboot.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.