Fedora 43 with /boot as a BtrFS subvolume

Just wanted to let you know that installing Fedora with /boot as a btrfs subvolume works fine:

root@desktop:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0  14.6T  0 disk /home/renich/Downloads/xzone
                                      /home/renich/VirtualMachines/isos
                                      /home/renich/Music
                                      /home/renich/Pictures/artwork
                                      /home/renich/Videos/artwork
                                      /home/renich/Downloads
                                      /home/renich/VirtualMachines
                                      /home/renich/Clients
                                      /usr/local/share/models
                                      /var/lib/libvirt/images
                                      /home/renich/Videos/movies
                                      /home/renich/.crypto
sdb           8:16   1   7.5G  0 disk 
├─sdb1        8:17   1   1.1G  0 part /run/media/renich/Fedora-E-dvd-x86_64-43
├─sdb2        8:18   1  12.6M  0 part 
└─sdb3        8:19   1   300K  0 part 
sdc           8:32   0   3.6T  0 disk 
sdd           8:48   0   3.6T  0 disk 
sde           8:64   0   3.6T  0 disk 
sdf           8:80   0   3.6T  0 disk 
sdg           8:96   0   3.6T  0 disk 
zram0       251:0    0     8G  0 disk [SWAP]
nvme0n1     259:0    0   3.6T  0 disk 
├─nvme0n1p1 259:1    0     1G  0 part /boot/efi
└─nvme0n1p2 259:2    0   3.6T  0 part /var/lib/libvirt/images/fast
                                      /home
                                      /var
                                      /srv
                                      /boot
                                      /usr/local
                                      /
nvme1n1     259:3    0 476.9G  0 disk 
└─nvme1n1p1 259:4    0 476.9G  0 part 

root@desktop:~# mount | grep boot
/dev/nvme0n1p2 on /boot type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,discard=async,space_cache=v2,subvolid=260,subvol=/boot)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)

Aparently, grub is smart enough to detect it, which makes me happy.

I’m posting this because I saw a comment somewhere about migrating /boot into a BtrFS subvolume.

It would be possible to implement quotas as limits for how much a subvolume can grow. That said, I’m fine as it is in my workstation.

This, also, overrides the hurdles faced with the recent 2 GiB requirement issued for Fedora 43, which required me to re-format my drive.

But will not work if you encrypt the file system right?

Almost all my systems use LUKS full disk encryption.

1 Like

I am not familiar with grub’s ability to manage encryption. Someone else will have to answer that.

It can be made to work in Fedora with manual effort.

GRUB supports LUKS for a long time, but the installer doesn’t configure it for us, hence separate unencrypted boot.

(open)SUSE installer does do this setup, so there is a working use case. But I’m not aware there’s ever been interest in doing this in Fedora: poor i18n and a11y, lots of complexity has generally meant a preference for getting to a fully capable user space sooner.

Most of the work on Btrfs/fscrypt is done, (open)SUSE has picked up that work effort to get it merged, and then we have a way to encrypt per directory (as well as per subvolume) so we could leave boot encrypted, optionally encrypt usr, etc, var with a secret sealed in the TPM (or user passphrase) and something like systemd-homed for encrypted user files. In this scenario, boot loader choice doesn’t matter.