From Fedora Project Wiki

Btrfs with Full System Snapshots using snapm and boom

Summary

This change is about fixing the remaining issues in the installer, bootloader setup, and software management stack. When a user selects a Btrfs-based installation in Fedora, it will set up an optimal Btrfs configuration (including /boot on Btrfs). The system will be configured to automatically create full OS snapshots for each package management transaction using snapm. The boom boot manager will be configured to create bootloader entries for these snapshots, allowing a user to easily boot into a previous system state if necessary.

Owner

Name: Neal Gompa, Bryn M. Reeves,

Email: ngompa13@gmail.com, bmr@redhat.com

Release notes owner:

Current status

Targeted release: Fedora 45

Last updated: 2025-11-05

Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Btrfs is a next-generation, volume-managing filesystem that provides facilities for spanning multiple disks with integrated RAID, cheap filesystem snapshots due to its copy-on-write nature, and strong integrity through data and metadata checksumming. However, in Fedora, the ability to take advantage of this has been handicapped by issues across Fedora-specific tools at the lower levels of the distribution that kept us from using these features to their fullest extent.

This change encompasses the work to fix these issues in those tools so that if a user wishes to set up Fedora with Btrfs, they get a first-class experience using the filesystem. We will be using snapm for snapshot management and boom for bootloader integration.

Benefit to Fedora

This will enable users on Fedora to finally be able to use a full Btrfs disk configuration without custom work outside of the installer. It will also help with improving the safety of software updates for those using Btrfs by having the system configured to automatically generate full system snapshots and boot entries for those snapshots for rescue/recovery purposes. In addition, this will enable future work on interesting custom alternative approaches for producing appliances (such as appliances built so that they receive updates via btrfs send/receive atomically and re-root) without unusual tooling.

Scope

Proposal owners:


Adjust the default proposed Btrfs layout by Anaconda to be more optimal (potentially derived from the openSUSE one).

Add support for automatically configuring snapm and the dnf-plugin-snapm on Btrfs installs.

Integrate boom to automatically create and manage boot entries for snapshots generated by snapm, ensuring they are available in the GRUB 2 menu.

Other developers:

Include snapm, python3-snapm, dnf-plugin-snapm, and boom in the live/install media so that they can be configured during installation.

Release engineering: ~~#7591~~ UPDATE ME (a check of an impact with Release Engineering is needed)

    • List of deliverables:
      • Live Media: Addition of snapm, python3-snapm, dnf-plugin-snapm, and boom on all images.
      • Install DVD: Addition of snapm, python3-snapm, dnf-plugin-snapm, and boom for Anaconda to install when Btrfs is selected.
      • Netinstall: Addition of snapm, python3-snapm, dnf-plugin-snapm, and boom for Anaconda to install when Btrfs is selected.

Policies and guidelines: N/A (not needed for this Change)

Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (enables new functionality previously unavailable in Fedora)

How To Test

Basic flow:

Set up the system fully on Btrfs using the installer.

Ensure snapshots are taken automatically when package management actions happen (e.g., dnf install, dnf update).

Verify the snapshot is registered by boom and able to be selected to boot from in the GRUB menu.

Verify boot-to-snapshot function lets you boot into that older system state.

Verify that you can manage snapshots and boot entries using the snapm and boom command-line tools.

User Experience

When users select Btrfs for their system on install, they will get a Fedora system that will automatically snapshot itself on software management actions. They will have the ability to select those snapshots from the boot menu to boot into for recovery purposes, with the boot entries being managed transparently.

Dependencies

anaconda

boom-boot

grub2

snapm BTRFS support

python3-snapm

dnf-plugin-snapm event-driven snapset creation

Contingency Plan

Contingency mechanism: Disable auto-configuration of snapm and boom in Anaconda.

Contingency deadline: Beta freeze

Blocks release? Yes

Blocks product? N/A

Documentation

snapm Documentation

boom Documentation

openSUSE Btrfs layout

Release Notes

Fedora now offers automated system snapshots on Btrfs installations. Using the powerful snapm and boom tools, the system automatically creates a snapshot before any package management operation. If an update causes issues, users can easily reboot into a previous, working system state by selecting the snapshot from the boot menu.