Another Grub Problem
I ran pacman -Syu on my Bosgame brand “Ecolite Series” E2 mini-PC,
as one does on the weekend.
I got a very strange message upon rebooting:
symbol grub_is_using_legacy_shim_lock_protocol not found
pacman updated the grub package
to r359.
Updating grub (the Grand Unified Bootloader) is almost as fraught
as updating the PPP package.
Usually, none of my anxiety about grub manifests, but today, it did.
After running grub-install --efi-directory=/boot/EFI,
and grub-mkconfig -o /boot/grub/grub.cfg,
I rebooted, and got past the grub menu.
Then this appeared:
Loading Linux linux ...
error: symbol `grub_is_using_legacy_shim_lock_protocol' not found
Loading initial ramdisk ...
error: symbol `grub_is_using_legacy_shim_lock_protocol' not found
Press any key to continue ...
In the immortal words of Shakespeare:
Breathes there a man
with soul so dead
who never to himself hath said
uh-oh.
I looked around The Internet for a while.
I found a few things to try that didn’t work because
I was searching for the wrong grub error message.
I finally found an Arch Linux forums message
that suggested that /boot/EFI was the wrong directory name, and to use /boot
I booted using the Arch Linux install ISO image, and did:
# mount /dev/nvme0n1p2 /mnt
# mount /dev/nvme0n1p1 /mnt/boot
# arch-chroot /mnt
# ls /boot/EFI
There was another directory, EFI/ inside /boot/EFI/, complete with a file
GRUB/grubx.efi in it.
I tried this:
sudo grub-install --efi-directory=/boot --bootloader-id=GRUB --target=x86_64-efi --disable-shim-lock
sudo grub-mkconfig -o /boot/grub/grub.cfg
That worked. I’m not sure that the --disable-shim-lock actually had any effect.