Linux on UEFI - how to reboot to the UEFI setup screen like Windows 8 can?

makeuseof.com explains that Windows 8 certified hardware has a new way to enter the UEFI setup screen (equivalent to BIOS). From How To Access The BIOS On A Windows 8 Computer:

No longer do we press a certain key during the boot process to reveal the BIOS – instead, an option to access the BIOS is located in Windows 8’s boot options menu... If you’re just here to access your computer’s UEFI BIOS, click the Troubleshoot tile.

The main developer of Secure Boot for Linux says that alternative OS's can't assume the old way will continue to work. So does Linux also have a new way to enter UEFI setup?

I have an ASUS motherboard. It suggests that an upgraded version of the firmware contains a fast boot option. The flip side is that the option might make it even harder to "reveal the BIOS" than it already is.

I don't mind tinkering. Just if this is known to be a bad idea, I don't want to go through the risk of a firmware upgrade for nothing (and maybe have to pop the case off, reset the settings and have to set them all up again).


Alternatively, how is this handled for Windows 7 users? If they optimistically select the fast boot option, how do they get access to the "BIOS" setup again when they need it?


On modern Linux distributions using systemd, you can go straight to the Firmware setup menu using:

systemctl reboot --firmware-setup

Documentation: https://www.freedesktop.org/software/systemd/man/systemctl.html#--firmware-setup


I'm not sure how exactly Windows 8 does this, but I can guess that it takes advantage of UEFI variables used for boot options.

You can use efibootmgr to determine the meanings of the various boot variables. On my system, Boot0000 is Setup, so using efibootmgr -n 0 should cause the system to boot into setup on the next boot.


I've written a small tool to do this without systemd, https://github.com/adoakley/efi-boot-to-fw-ui.