I have three OSes installed on my PC currently: Windows 11 (nvme), Fedora 40 (sda), and Fedora 39 (sdb). I would like to configure Grub (installed on sda) to be able to boot all three OSes. It auto-detected Windows just fine, but it wouldn't detect the F39 install on sdb. I tried the following things to get this to work:
- Copy the files in
/boot/loader/entriesfrom sdb to sda. Booting F39 with this configuration didn't work, as Grub couldn't find the files listed in the F39 entries, as they were on a different drive. - Copy the files in /boot/loader/entries AND the initrd and vmlinuz files from sdb to sda. Booting into F39 got past Grub this time, but it booted into emergency mode.
- I'm not entirely sure how it happened, but, after booting into F40 an rebooting again, Grub failed to load either Fedora install (all installed kernels and the rescue image). Booting into a live environment, mounting the F40 boot partition (on sda), and removing the initrd and vmlinuz files copied from from F39 fixed this.
Because Fedora follows the new BFS spec (also discussed here on this Fedora changelog) instead of the older Grub2 menuentry spec, doing what I would like to do seems much harder. I would like to have all OSes under one unified boot loader, but I am not partial to Grub if a compelling alternative that does what I need it to do exists. I use F40 for the serious Linux stuff (development, testing, etc.) and F39 as a sandbox for whatever the heck I want (as well as the occasional drive cloning).
Maybe the best solution is to virtualize my sandbox... This computer certainly can run it without a hitch.