tl;dr: Detect EFI bootloaders on live USB works, but the motherboard doesn’t recognise the drive as bootable.
My motherboard no longer recognises my Manjaro (/dev/sdb) disk as a bootable drive.
I managed to delete my EFI partition. I created a FAT32 partition at the beginning of the drive (300MiB) with the boot and esp flags and followed these instructions to restore GRUB:
su -
manjaro-chroot -a
mount -t vfat /dev/sdb1 /boot/efi
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
update-grub
nano /etc/fstab # Add UUID of /dev/sdb1 to /etc/fstab
The rest of the drive is EXT4 with a small linux-swap partition with the swap flag enabled.
My motherboard (which can see the drive is attached in the BIOS) does not display the drive as bootable in the boot priority options.
Whenever I used a live USB, and choose Detect EFI bootloaders, selecting (hd2, gpt1)/efi/manjaro/grubx64.efisuccessfully boots manjaro.
The drive is set to a higher boot priority than the other drives in my system, and it bypasses them and goes to a lower priority one. This happens on UEFI and Legacy compatibility mode.
My motherboard is running the latest BIOS version.
Whenever I used a live USB, and choose Detect EFI bootloaders, selecting (hd2, gpt1)/efi/manjaro/grubx64.efi successfully boots manjaro.
“HD(1,GPT” (windows) and “HD(2,GPT” (linux)
You have 3 drives, two of which have EFI partitions (linux and windows system drives). i.e. each EFI has a different GUID/partUUID.
Where do you wish to boot linux from, the EFI on the windows drive or the EFI on the linux drive?
Boot0000* Windows Boot Manager HD(1,GPT,35634094-bcf4-48e2-96a4-c2a923b91d19
Boot0001* Manjaro HD(1,GPT,d669c7f3-853e-4793-95fb-6e27390c118b
At the moment it appears that both windows and linux are booting from the same drive “HD(1,GPT” which presumably is the windows drive.
Windows is booting from EFI partition with partUUID 35634094-bcf4-48e2-96a4-c2a923b91d19 and linux d669c7f3-853e-4793-95fb-6e27390c118b (does this partition exist on “HD(2,GPT” ??).
You can manually correct this by first confirming the the EFI partUUID on the linux drive.
sudo blkid
Also have a look at fstab on your linux system partition.
So I unplugged my windows drive so that it wouldn’t be viewable when I reinstalled and Manjaro booted from EFI successfully.
I think this was a problem with my specific motherboard BIOS since it didn’t even show it as a bootable drive beforehand.
Only installing a single drive at a time and they both boot fine individually.
When they’re both installed, the one most recently unplugged doesn’t show on the boot menu.
If you own a desktop with SATA controller then you may want to consider purchasing a SATA Power Switch (google search: Linux windows data separation - SATA Power Switch).
Just a couple of button presses to switch between Linux and Windows and no more Grub menu/selection prompt to slow down your system boot up!