This is a quick history on how I've been using --efi-directory grub parameter wrong for years but suddenly grub stopped to handle this mistake by simply not working anymore.

The problem

Well I'm an Archlinux user (btw) for like 12 years (if I remember correctly) and my grub installation command was the following:

# grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB

And everything worked perfectly... Until some weeks ago.

If you look my lsblk output you can already detect the problem:

sdc      8:32   0 111,8G  0 disk 
├─sdc1   8:33   0     1G  0 part /boot
└─sdc2   8:34   0 110,8G  0 part /

Don't you see yet?

Well, the problem is that my esp partition is mounted on /boot while my --efi-directory is pointing to /boot/EFI, and this is wrong!

Why this? I don't know, probably lazy reading the arch wiki and if it's working why fix it? ¯_(ツ)_/¯

For some reason this worked until grub 2.12 without any problems, but now it's fixed and I screw up my grub installation.

Thanks for this Gentoo's forum thread

Since then I've been using refind just because I was lazy enough to not read the wiki with attention to see where I was wrong.

The fix

This problem affected me and other people but only recently I found the problem.

Well the fix is really easy: Just point --efi-directory to the same path of your mount point.


RTF Wiki!