Yes I seem to have got it working now by doing this:
$ sudo dracut --add btrfs --force
$ sudo lsinitrd /boot/initramfs-5.8.13-200.fc32.x86_64.img | grep btrfs
Arguments: --add 'btrfs' --force
-rw-r--r-- 1 root root 20 May 29 19:35 etc/cmdline.d/00-btrfs.conf
-rw-r--r-- 1 root root 616 May 29 19:35 usr/lib/udev/rules.d/64-btrfs.rules
-rwxr-xr-x 1 root root 965424 May 29 19:35 usr/sbin/btrfs
lrwxrwxrwx 1 root root 5 May 29 19:35 usr/sbin/btrfsck -> btrfs
So now the BTRFS volume mounts automatically at boot and I can’t seem to make it fail to even when my disks are in funny configurations, split between HBA and direct motherboard connections.
Presumably I will have to do this
dracut --add btrfs --force everytime there is a new kernel until dracut is modified to add the minimal btrfs stuff when there is any btrfs filesystem in
/etc/fstab not just the root filesystem. Or is the fact that I’ve added the btrfs module once carried forward even though fedora is using
dracut --hostonly by default? I guess I will find out!
I have been looking at
man dracut and it looks like I can prompt dracut to add the btrfs module by modifying
/etc/dracut.conf or creating
/etc/dracut.conf.d/myconf.conf. I haven’t done that yet because I want to understand it all a bit better first.
I’m sure the
x-systemd.automount option in
/etc/fstab would work too.
The other solution coming around the corner is to do a clean install of Fedora 33 and have it’s default btrfs root filesystem solve the problem for me too.