You are not logged in.
Every time I update the BIOS (or "firmware") of my Gigabyte AB350M-DS3H the UEFI boot list is cleared / reset to default. So my entry for booting Arch directly via its kernel (no grub, no efistub) is gone, I have to boot from USB stick and re-create a boot entry with efibootmgr. I think the boot settings are saved in the efivars, please correct me if I'm wrong.
Is there any way to preserve the efivars on firmware update?
Offline
Offline
As Slithery answer you, there is probably nothing to do. I do not think that's a bad idea, though. Flashing the firmware erase every stored information in the firmware. You can actually have problems with BAD UEFI variables / settings; maybe up to the point to brick the system. This feature ensures that refreshing the firmware will unbrick the motherboard if some things became corrupted.
Now, how often do you update the firmware? It's usually not something you do very often.
Offline
This feature ensures that refreshing the firmware will unbrick the motherboard if some things became corrupted.
If the motherboard was bricked, how could you boot in the first place and flash new firmware? So I am not sure I follow that logic.
Boot entries are preserved just fine on my HP PC after BIOS updates, so if some BIOSes delete them, I would consider that anti-Linux trolling by the hardware manufacturers...
Offline
olive wrote:This feature ensures that refreshing the firmware will unbrick the motherboard if some things became corrupted.
If the motherboard was bricked, how could you boot in the first place and flash new firmware? So I am not sure I follow that logic.
Because most UEFI motherboards allow you to flash directly from a USB even if you can't boot an OS.
Boot entries are preserved just fine on my HP PC after BIOS updates, so if some BIOSes delete them, I would consider that anti-Linux trolling by the hardware manufacturers...
What? Why is this anti-linux?
If you install your bootloaders *.efi to the default location like Windows does then no EFI entries are needed.
Offline
What? Why is this anti-linux?
If you install your bootloaders *.efi to the default location like Windows does then no EFI entries are needed.
So if you use a boot manager like rEFInd, it would not not be affected by this kind of reset? Well I guess that is good news then. But still I see no technical reason for resetting these EFI vars. Other BIOSes seem to do just fine without a reset.
On non-UEFI systems, Windows 10 sometimes makes itself the default boot choice even when Linux was selected as the default previously. Somehow "accidental" boot order resets always mysteriously favor Windows...
Offline
On non-UEFI systems, Windows 10 sometimes makes itself the default boot choice even when Linux was selected as the default previously. Somehow "accidental" boot order resets always mysteriously favor Windows...
That's nothing to do with your firmware, it's caused by a Windows update rewriting the MBR because it assumes it's always the only OS.
Offline
Thank you guys for your answers. So I opened a ticket at Gigabyte's support. At least they see that there's some kind of demand for e.g. a checkbox that says "[ x ] preserve boot configuration" (like my router provides for its firmware updates).
Offline
If you're willing to build your own kernel you can embed your custom boot settings as the default options. If you then save it as $esp/EFI/BOOT/BOOTX64.EFI it will automagically boot even if your efivars are empty (snigger).
Offline