Many hours died to bring you this information
grub-install --target=x86_64-efi --efi-directory=<espdir> --removable if following the Arch Linux install guide
I acquired a Dell Wyse 3040 thin client recently. I hit a snag during the install, in that it would not boot the new operating system.
grub-install claimed to have successfully completed, but it wasn’t booting. The entry was present on the Dell setup page, but it was being bypassed:
As a side note, I don’t seem to be able to disable UEFI boot mode in favour of legacy. Someone on the Dell forums claims this was removed but I can’t confirm or refute that.
After much futzing, not helped by the fact I was using a netboot image (PS: check out netboot.xyz, it’s really good!), I discovered that the Wyse 3040 was using the fallback location for the EFI image.
This is mentioned on the Grub wiki page under ‘troubleshooting’:
Default/fallback boot path
Some UEFI firmwares require a bootable file at a known location before they will show UEFI NVRAM boot entries. If this is the case,
efibootmgrhas added an entry to boot GRUB, however the entry will not show up in the VisualBIOS boot order selector. The solution is to install GRUB at the default/fallback boot path:
# grub-install --target=x86_64-efi --efi-directory=esp --removable
Alternatively you can move an already installed GRUB EFI executable to the default/fallback path:
# mv esp/EFI/grub esp/EFI/BOOT
# mv esp/EFI/BOOT/grubx64.efi esp/EFI/BOOT/BOOTX64.EFI
As another aside, I find myself yearning for something simpler than WordPress. The block editor is… fine, but sometimes it gets in your face a bit; like when you’re trying to paste preformatted text in a quote. Also, blocks look different in the editor to how they look ‘on the page’… But I digress.
Strangely, while the boot manager on the setup page has an option to browse and set a path to the EFI image, it does not seem to honour this setting. I spent a couple of reboot cycles trying that before using the fallback path. It was only when I took some images of the screen after a reboot that I noticed that the file path changed:
Once I moved the EFI executable to the fallback path of
/EFI/BOOT/BOOTX64.EFI Arch booted successfully.
My final tip? If you’re tracking down a boot problem, use a standard USB instead of a netboot image; and disable any inbuilt PXE options. Waiting for an image to download over and over and for PXE to timeout becomes… tedious. Especially if you have to go up and downstairs to re-enable ssh after booting while testing! But hey, it’s a way to exercise during lockdown…