Compression not enabled for btrfs subvolumes renamed during install

Problem

If you use the “custom” partitioning UI during installation of Fedora 34 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.

2 Likes