Boot Environments
A boot environment (BE) is a ZFS clone of your root filesystem. You can create one before any risky operation, then roll back to it instantly — without a live USB, without reinstalling, without restoring from backup.
omfreebdy auto-creates a boot environment before every system update.
What Gets Cloned
Section titled “What Gets Cloned”A boot environment captures the root pool at the moment of creation: the base system, all installed packages, and system configuration. Your home directory is a separate dataset and is not included.
zpool list# NAME SIZE ALLOC FREE ...# zroot 120G 18.4G 101G ...
zfs list -t snapshot# zroot/ROOT/default@before-update-2026-03-20 1.2G# zroot/ROOT/default@before-experiment 890MCommands
Section titled “Commands”boot-env create
Section titled “boot-env create”boot-env create <name>Creates a ZFS snapshot and registers it as a bootable environment. Name should be descriptive.
boot-env create before-nvidia-driverboot-env create before-pkg-upgradeboot-env create working-stateboot-env list
Section titled “boot-env list”boot-env listNAME ACTIVE MOUNTPOINT CREATEDdefault * / 2026-01-15before-nvidia-driver - 2026-02-10before-pkg-upgrade - 2026-03-01working-state - 2026-03-18The * marks the currently booted environment.
boot-env rollback
Section titled “boot-env rollback”boot-env rollback <name>Activates the named environment as the next boot target. Reboot to complete the rollback.
boot-env rollback before-nvidia-driversudo rebootRollback does not destroy other environments. You can switch between boot environments at any time. Delete old ones when you no longer need them.
boot-env delete
Section titled “boot-env delete”boot-env delete <name>Destroys the ZFS snapshot and removes the environment from the bootloader menu.
Keybinding
Section titled “Keybinding”| Shortcut | Action |
|---|---|
| Super + Ctrl + S | Create boot environment with timestamp |
Waybar Module
Section titled “Waybar Module”The Waybar status bar includes a boot environment indicator. It shows the name of the currently active environment and turns amber if the current BE has no recent snapshot.
Click the module to open a terminal with boot-env list.
Automatic Snapshots
Section titled “Automatic Snapshots”mise run update creates a boot environment automatically:
mise run update# [BE] Creating boot environment: before-update-2026-03-20# [pkg] Updating package repository...# [pkg] Upgrading 12 packages...# [omfreebdy] Pulling latest configs...# Done. Revert with: boot-env rollback before-update-2026-03-20If the update breaks something, roll back before the next reboot or select the previous environment from the bootloader menu.
Bootloader Selection
Section titled “Bootloader Selection”At startup, the FreeBSD bootloader can list available boot environments. No running system is required — this works even if the current environment will not boot.
To select a boot environment:
- Restart the machine
- Press Spacebar during the bootloader countdown to interrupt it
- Press 8 to access the Boot Environments menu
- Press 2 to cycle through available environments
- Press Enter to boot the selected one
The omfreebdy installer creates a proper zroot/ROOT/default dataset layout, which is required for the bootloader to detect and list boot environments.
Boot environments protect against OS-level breakage. They do not replace backups. Home directory changes, database contents, and application data are not captured in a BE.
No Linux Equivalent
Section titled “No Linux Equivalent”ZFS boot environments require the bootloader to understand ZFS datasets, which FreeBSD’s bootloader (loader) has done since FreeBSD 9. GRUB on Linux added ZFS support later and it remains fragile — dataset naming conventions differ, and most distributions do not configure it automatically.
Tools like btrfs-assistant and snapper provide similar functionality for Btrfs, but they require manual setup, are distribution-specific, and are not integrated into the bootloader the same way.
On FreeBSD, boot environments work at install time with zero configuration if you select ZFS during the FreeBSD installer.