GRUB hidden menu change FAQ
Oct. 1st, 2018 01:58 pmThere have questions about the new GRUB hidden menu Change in various places, here is a FAQ which hopefully answers most questions:
On a system using UEFI booting ("ls /sys/firmware/efi/efivars" returns a bunch of files):
sudo grub2-editenv - set menu_auto_hide=1
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
On a system using legacy BIOS boot:
sudo grub2-editenv - set menu_auto_hide=1
sudo grub2-mkconfig -o /etc/grub2.cfg
Note the grub2-mkconfig will overwrite any manual changes you've made to your grub.cfg (normally no manually changes are done to this file).
If your system has Windows on it, but you boot it only once a year so you would still like to hide the GRUB menu, you can tell GRUB to ignore the presence of Windows by running:
sudo grub2-editenv - set menu_auto_hide=2
sudo grub2-editenv - unset menu_auto_hide
That is it.
So if you e.g. login, do something and then within 30 seconds type reboot in a terminal (instead of doing the reboot from the menu) then this will not count as a successful boot and the menu will show the next boot.
1. What is the GRUB hidden menu change?
See the Detailed Description on the change page. The main motivation for adding this is to get to a fully flickerfree boot.2. How to enable hidden GRUB menu?
On new Fedora 29 Workstation installs this will be enabled by default. If your system has been upgraded to F29 from an older release, you can enable it by running these commands:On a system using UEFI booting ("ls /sys/firmware/efi/efivars" returns a bunch of files):
sudo grub2-editenv - set menu_auto_hide=1
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
On a system using legacy BIOS boot:
sudo grub2-editenv - set menu_auto_hide=1
sudo grub2-mkconfig -o /etc/grub2.cfg
Note the grub2-mkconfig will overwrite any manual changes you've made to your grub.cfg (normally no manually changes are done to this file).
If your system has Windows on it, but you boot it only once a year so you would still like to hide the GRUB menu, you can tell GRUB to ignore the presence of Windows by running:
sudo grub2-editenv - set menu_auto_hide=2
3. How to disable hidden GRUB menu
To permanently disable the auto-hide feature run:sudo grub2-editenv - unset menu_auto_hide
That is it.
4.How to access the GRUB menu when hidden
If for some reason you need to access the GRUB menu while it is hidden there are multiple ways to get to it:- If you can get to gdm, access the top-right menu (the system menu) and click on the power [⏻] icon. Then keep ALT pressed to change the "Restart" option into "Boot Options" and click "Boot Options".
- While booting keep SHIFT pressed, usually you need to first press SHIFT when the vendor logo is shown by the firmware / when the firmware says e.g. "Press F2 to enter setup" if you press it earlier it may not be seen. Note this may not work on some machines.
- During boot press ESC or F8 while GRUB loads (simply press the key repeatedly directly after power on until you are in the menu).
- Force the previous boot to be considered failed:
- Press CTRL + ALT + DEL while booting so that the system reboots before hitting gdm
- Press CTRL + ALT + F6 to switch away from gdm, followed by CTRL + ALT + DEL.
- Press the power-button for 4 seconds to force the machine off.
the menu will show the next boot. - Manually set the menu show once flag by running: "grub-set-bootflag menu_show_once" This will cause the menu to show for 60 seconds before continuing with the default boot-option.
5. When is a boot considered successful ?
The boot_success grub_env flag gets set when you login as a normal user and your session lasts at least 2 minutes; or when you shutdown or restart the system from the GNOME system (top-right) menu.So if you e.g. login, do something and then within 30 seconds type reboot in a terminal (instead of doing the reboot from the menu) then this will not count as a successful boot and the menu will show the next boot.