How to select which OS' GRUB bootloader is selected


I have several distributions installed on my PC and of them I have found openSUSE’s GRUB bootloader the most comprehensive. Most of my distributions’ bootloaders only show at most 60% of the distributions on my PC, while openSUSE’s shows all of them. Unfortunately Arch’s bootloader is booted by default. If it helps here is the output of ls /boot/efi/EFI (showing the distributions with bootloaders installed):

arch   boot   deepin   fedora   fedora-rawhide  'KDE_neon_Developer_Edition_(Unstable_Branches)'   mageia   opensuse   ubuntu

is there a way to tell my PC to boot openSUSE’s bootloader by default? I realize deleting the other directories in /boot/efi/EFI would do it but is there a non-destructive method? I’d like the option to start these other bootloaders should I wish to.

Thanks for your time,

uefibootmgr is how I’ve been doing it. Take a look at nrickert’s blog on the subject UEFI multiboot:

Since this is a UEFI box, it is really up to the firmware (BIOS) of your computer.

You can use (as root):

efibootmgr -v
to get a list of the possible boot choices, with their numbers (a 4-digit hexadecimal number).

You can then set the boot order, with something like:

efibootmgr -o 0003,0001,000A

The problem is that some system firmware (BIOS) will ignore the order you set, and change to what it thinks.  That happens in one of my two UEFI boxes.  However, I can go into the BIOS setup screens, and set the order there.  Check whether that works on your computer.

Thanks that works! Kind of ashamed I didn’t find such a simple solution on my own.