Troubleshooting missing firmware access
UEFI firmware implementations
Some systems has a nasty habit of losing access to the firmware after your Linux installation. A couple of examples
This document is a work-in-progress ...
The cause
It is not clear what makes this happen - a lot is pointing to bad implementations of the UEFI specification - in some cases the firmware is hardcoded to load $esp/EFI/boot/bootx64.efi
6.
Your system will usually be able to boot your installed Linux - only the firmware is not displaying correctly.
Usually you should be able to load the firmware on next reboot by using
$ systemctl reboot --firmware-setup
The cure
There is no one-size-fits-all answer - the following is a list compiled from Manjaro Forum and the first being from Arch Wiki.
I am listing the possibilities from least to most intrusive action.
- Use the most basic approach
- Boot your Linux system Arch Wiki
- Switch user to root
su -
- provide the root password when requisted
- Copy the grub or systemd-boot efi stub to the $esp/EFI/BOOT/BOOTX64.EFI
- Try booting to the firmware using the aforementioned command
- Removing the newly installed efistub
- Boot your Linux system
- Remove the grub efi loader - usually in a subfolder named for your distribution - e.g.
$esp/EFI/Manjaro/grubx64.efi
- rename the file or move it to another location
- Try booting to the firmware
- Remove everything from the $esp mount point
- This requires having some kind of boot media readily available to be able to do some system rescue.
- This has proven to work on at least 2 occasions and requires you to have some experience using chroot to resque the system
- Using GRUB console to boot a removable media
- This requires having some kind of boot media readily available and more intimate knowledge of the GRUB shell
- It also requires the availability of either a Windows installation media or a dedicated rescue media like Hirens BootCD