Compression not enabled for btrfs subvolumes renamed during install

Problem

If you use the “custom” partitioning UI during installation of Fedora 34-37 and change the name of any btrfs subvolume, its line in /etc/fstab will lack the intended compress=zstd:1 mount option. This is benign, affecting only fstab entries, unless the subvolume is mounted as root ( / ); in this case, the entire installation will lack compression.

Related Issues

Bugzilla report: #1952764

Workarounds

If you need to change the / subvolume name, e.g. @root there are a couple of workarounds for the bug:

Workaround A: make the name change in the installer, and then fix /etc/fstab post-install

  • Step 1: Modify the Name field for ‘/’ mount point, per user preference.
  • Step 2 (optional): Immediately after beginning the installation, switch to a shell and enter: sudo mount -o remount,compress=zstd:1 /mnt/sysimage. If you get an error, you were too fast, the installer hasn’t yet mounted the Btrfs file system to /mnt/sysimage - simply reissue the command until it returns without error. You can confirm it’s enabled by mount | grep btrfs.
  • Step 3: Modify /etc/fstab post-install, either before or after rebooting from the install environment.

Workaround B: make the subvolume name change post-install

  • Step 1: Proceed with installation normally, do not modify the subvolume name for /.
  • Step 2: Post-install change the name of the / subvolume found in the top-level of the file - system, and update /etc/fstab to indicate the subvol=$NAME as appropriate.
  • Step 3: Run grub2-mkconfig -o /etc/grub2.cfg

NOTE: It is safe to rename actively mounted subvolumes.

3 Likes