What ZFSBootMenu Is and What docs.zfsbootmenu.org Covers
Updated
ZFSBootMenu is a bootloader for Linux on ZFS: a small, self-contained Linux system that finds kernels and initramfs images inside ZFS filesystems, lets you pick or manipulate boot environments before booting, and then starts the chosen kernel with kexec. The site docs.zfsbootmenu.org hosts the official documentation for version 3.1.0, covering installation, configuration, command-line arguments, and prebuilt EFI executables. It is relevant if you run Linux on ZFS and want snapshot-based boot environments or pre-boot recovery; it is not needed for non-ZFS systems.
What the bootloader actually does
The documentation describes the boot flow in concrete steps:
- A ZFSBootMenu image is started — either as a self-contained UEFI application or as a dedicated Linux kernel and initramfs — via direct EFI boot, an EFI boot manager such as rEFInd, a BIOS bootloader such as syslinux, or another method.
- ZFSBootMenu finds all healthy ZFS pools and imports them, or imports only a specific pool if the user chooses.
- It selects a preferred boot environment: if the command line names a pool and that pool is imported, the filesystem marked by its
bootfsproperty is preferred; if no pool is named or the preferred pool is missing, thebootfsfilesystem on the first-found pool is used. - If a suitable
bootfsis identified, an interruptable countdown (10 seconds by default) starts an automatic boot. If nobootfsis found or the countdown is interrupted, a selection interface follows.
The key mechanism is that ZFSBootMenu does not chainload a fixed boot sector — it reads ZFS directly, so any kernel and initramfs visible in the pool can be a boot target.
Boot environments: the reason to use it
ZFSBootMenu is built around "boot environments," which the documentation describes as potentially different versions of a Linux distribution, earlier snapshots of a common root, or entirely different distributions. Because these are ZFS datasets and snapshots, you can:
- choose among them at boot time;
- manipulate snapshots in the pre-boot environment;
- bootstrap a system installation via
zfs recv, which the docs present as an option for adventurous users.
For example, if an upgrade breaks your root, you can boot an earlier snapshot of the same root from the menu instead of reaching for external rescue media.
What the documentation site contains
The 3.1.0 docs are organized around these topics:
| Section | What it answers |
|---|---|
| Distribution Agnostic | Why it works across Linux distributions |
| Easily Deployed and Extensively Configurable | Deployment options: local installation, building in a container |
| ZFS Boot Environments | The boot-environment model described above |
| Command-Line Arguments | Options passed to ZFSBootMenu, including pool preference |
| Run-time Configuration of ZFSBootMenu | Changing behavior at boot time |
| Signature Verification and Prebuilt EFI Executables | x86_64 EFI image and x86_64 recovery image |
The site also links to the project's GitHub repository. The documentation is available in .rst and .pdf forms.
How to decide whether to read further
- Read the installation and EFI sections if you want to boot Linux from ZFS and need a bootloader that understands snapshots and multiple roots.
- Read the command-line and run-time configuration sections if you already use ZFSBootMenu and want to control which pool or
bootfsis preferred, or adjust the automatic-boot countdown behavior. - Skip it if your system does not use ZFS, since the entire tool depends on OpenZFS features.
The documentation does not state pricing or login requirements for the software or the site; treat availability and access terms as things to confirm on the site itself rather than assumptions.