GRUB Issues With 4 OS's

I built a brand new rig. The MOBO has 5x m.2 nvme slots. I put a 2TB SSD in each slot with intent of testing multiple distros.

Manjaro is installed on drive #1 and is without a doubt my daily driver based on my very satisfied experience with the environment and polish of the distro.

I have endeavour on drive 2, POP_OS on drive 3 and Fedora 41 KDE on drive 4.

When I boot into Manjaro in run “sudo update-grub” the terminal output from OS Prober is that it finds the other 3 distros specifically naming them and saying it is adding a boot menu for each of them, but when I reboot and GRUB starts, I only have options to start Manjaro, Endeavour or POP. There is no option for Fedora.

Has anyone seen anything like this before? The Fedora install is using btrfs. I can hit F8 on the keyboard for the UEFI BIOS boot menu and select that drive and it boots fine. Not sure why GRUB is not picking it up and configuring it.

Thank you

The most common and most likely explanation would be that Fedora was not installed in the same boot mode as the other three distributions; i.e. native UEFI boot versus legacy BIOS emulation (CSM) boot.

It is never a good idea to mix boot modes. You should install all operating systems in the same mode.

2 Likes

Considering the OP’s Fedora is running atop BTRFS, what came to mind are the possible differences (with respect grub-btrfs) between (perhaps) os-prober requirements.

As I have limited exposure to BTRFS (I’ve never used it and only know what I’ve read) I haven’t mentioned this in the thread.

Would these possible differences have any bearing, do you think, or would I be barking up the wrong tree by suggesting it?

1 Like

Well, if /boot is on a btrfs filesystem, then one does need to use grub-btrfs instead of the regular grub package, which prefers ext3/ext4 for /boot.

2 Likes

So, depending on just how the OP has their /boot set up with the BTRFS system, this could create some difficulties for another Grub instance to find it, unless it was perhaps on its own ext3/ext4 partition. That makes sense.

2 Likes

The only thing I’ve seen with the BTRFS version of GRUB is you get a complaint about “the filesystem isn’t BTRFS” or suchlike during system upgrades where GRUB is updated; nothing to worry about. I’d just use that if you do have this filesystem in use? (I only use ext4 though).

1 Like

Don’t depend on grub to load the different OS - this will lead to difficulties like the one you present.

Instead use your - firmware’s boot override function - often F7 or F12 - consult your system manual for the correct key.

I’ll add that rEFInd is also a valid choice of bootloader:

The rEFInd UEFI Bootloader

Adding the rEFInd Bootloader to the mix does no harm to existing bootloaders. Manjaro and Windows are chainloaded from rEFInd and boot as normal.

If you enjoy customising the boot experience (themes), and like to have additional boot options (redundancy), rEFInd is a worthwhile consideration.

rEFInd can bypass GRUB 2 and boot the kernel stub directly, which is handy in the event that GRUB 2 fails to boot - you are still able to then boot into Manjaro and fix the issue in relative comfort.

rEFInd comes with ‘sane defaults’ - everything typically works (OOTB).

Installing rEFInd on a Manjaro/Windows multiboot system should give the following boot choices by default (the naming may be different):

  • Boot Microsoft EFI boot from ESP
    This option boots Windows via the Microsoft bootloader.
  • Boot EFI\Manjaro\grubx64.efi from ESP
    This option boots Manjaro via GRUB 2.
  • Boot boot\vmlinuz-6.6-x86_64 from MANJARO
    This option boots Manjaro via the Kernel stub, bypassing GRUB 2.

Options display as icons; activate with keyboard/mouse. :eyes:

See also: The rEFInd Boot Manager: Methods of Booting Linux.


The above, of course, is only a general example.

The simplest way to see rEFInd in action is to install it; from Manjaro. It should be valid for every Linux OS present.

# Install rEFInd from the official Manjaro repo
sudo pacman -S refind

# Use rEFInd's own tool to setup the ESP directory
sudo refind-install

Please read any relevant documentation concerning how to best use refind-install.

The ESP directory layout might be similar to:
$ESP
└─ EFI
    ├─ boot
    ├─ manjaro
    ├─ microsoft
    └─ refind

Note that moving rEFInd to the ESP fallback location /EFI/Boot is also a valid choice in some scenarios.

That is not true.

In KVM, I observe that Fedora uses Ext4 on the /boot partition for grub2 by default. However, Btrfs is the default filesystem for the main system only. It does not use grub-btrfs.

Fedora uses its own specialized grub config with OSTree, which might explain why Manjaro’s grub fails to detect it or whether grub + os-prober have limitations or bugs.

1 Like

Hi
I have 3 OSes too, but I dropped GRUB and rEFind because they are buggy, cumbersome and too complicated.
Limine amazed me because it’s lightweight and so simple to configure for booting multiple OSes, especially with BTRFS snapshots.

I suspect the latter of these. In the many years of use I have found rEFInd to be neither buggy nor cumbersome, though the single configuration file and its verbose comments might be confusing for some.

The online reference material is also not conducive to hand-holding but Rod certainly has ensured that everything needed can be found there.

Grub, however… well, I suppose that may be open to some criticism. :smile_cat:

GRUB could be a fine little operating system, if only it had a decent boot loader… :stuck_out_tongue_winking_eye:

3 Likes