Title says it all. I changed my btrfs subvol names so I could use timeshift to manage my snapshots, after regenerating the initramfs and editing grub to point to the new subvol names all was fine however after I got a kernel upgrade recently, the latest grub entry for the kernel specifies the old subvol name, resulting in a failed boot. I dont know grub well enough to know what options to add to /etc/default/grub, or even if thats where I need to add it. After editing the entry manually it boots perfectly fine so theres my question. Is there a grub config option to specify the name for a subvolume to boot? I’d rather not manually edit grub.cfg every time theres a kernel update lol.
check the GRUB_CMDLINE_LINUX
key in /etc/default/grub
it should contain the info about any subvolume. if it does not then there might be another grub config hook that is used by Fedora to add that info.
If you want to be able to change subvol names without having to touch the grub config you might also want to switch to using subvolid
instead of subvol
keys on the kernel command line, because the id will stay the same after a rename (this could backfire though if you assign functions to certain names like “fallback” etc.).
Edit: found the hook that adds the kernel command line option for btrfs subvolumes. in /etc/grub.d/10_linux
there is this bit of code:
case x"$GRUB_FS" in
xbtrfs)
rootsubvol="`make_system_path_relative_to_its_root /`"
rootsubvol="${rootsubvol#/}"
if [ "x${rootsubvol}" != x ]; then
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
fi;;
xzfs)
[skipped for brevity]
;;
esac
so it seems it is always looking at the subvol name of the currently mounted root fs.
Thank you man, I dont understand much of the syntax (like at all) but i figured if I just change the subvol from the variable to the name of my root it would work, and it did. Jank as fuck but hey, its my system aha. Appreciate you man