PSA: Dell Wyse 3040 Uses ‘Fallback’ EFI Location

Many hours died to bring you this information

tl;dr: run grub-install --target=x86_64-efi --efi-directory=<espdir> --removable if following the Arch Linux install guide


Interested in more info on the Wyse 3040? ParkyTowers has a treasure trove of info on the hardware, disassembly, firmware, installing TinyCore Linux, and some further reading. Enjoy!


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:

Photo of a TV screen showing the 3040 Wyse setup page

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, grub-install will claim efibootmgr has 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:

Note the different file names! The boot option names are different too but that’s as a result of me trying the same thing twice and expecting different results. I was close to madness!

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…

4 thoughts on “PSA: Dell Wyse 3040 Uses ‘Fallback’ EFI Location”

  1. Hi,
    I was installing debian and tried just to move home folder DEBIAN to BOOT and then rename grubx64.efi into bootx64.efi. But still it didn’t want to boot.
    The only difference from your installation is that I was trying to use lvm from the very first try.

    After that I found recommendations to use debian installer rescue mode right after installation and install grub. People say it helps to recover bootloader.

    Anyway in my case I succeded after clean installation (with removing partitions) without lvm with just one shot.

  2. Hi Maksim,

    Thanks for sharing that. It’s interesting that with Debian you need to use the rescue mode if using LVM, but not if you are using plain partitions- a cross-distro UEFI boot idiosyncrasy.

    Cheers,
    Rob

Tell us what's on your mind