I know this has been asked multiple times here before, how to hide grub menu on boot. I have tried following the discussion from before and its usually setting “GRUB_TIMEOUT = 0” or “GRUB_TIMEOUT_STYLE=hidden” followed by sudo grub2-mkconfig -o /boot/grub2/grub.cfg
or sudo grub2-mkconfig -o /boot/EFI/fedora/grub.cfg
but unfortunately for me neither works and my options that it shows on boot is also not accurate. I am running Fedora 42 but it still shows the previous option “Fedora 41” but it loads correctly to the Fedora 42 kernel 6.15 and no I am not dual booting.
Following is my grub config:-
GRUB_TIMEOUT="0"
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT="saved"
GRUB_DISABLE_SUBMENU="true"
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet selinux=0"
# GRUB_DISABLE_RECOVERY="true"
# GRUB_ENABLE_BLSCFG=true
# GRUB_HIDDEN_TIMEOUT="0"
I am using UEFI, Fedora Plasma 6.4 Spin 42 and Wayland
I probably messed something up on my end which I dont realise so I need some help in identifying that, thanks in advance for going through this and helping me out!
This is my grub config
$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora_root/root rd.lvm.lv=fedora_root/swap rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
The timeout settings are incorrect on yours. GRUB_TIMEOUT=0 tells the system to not display the grub menu (or rather to not delay in continuing the boot).
I don’t know what you are using for boot, but having the recovery and blscfg commented out may interfere as well.
The hiding of the grub menu is seen in the /boot/grub2/grubenv file which can be viewed with sudo grub2-editenv list
and there (by default) is an entry which may be something such as menu_auto_hide=1
Note that if you are dual booting the system by default always shows the grub boot menu so you have the option to select the alternate OS for booting. My laptop has the value noted (which hides the grub menu on a single boot system) but always displays the grub menu since it is dual boot.
Note that since fedora 32 (5 years ago) that command WILL break kernel updates. The file was changed to a static pointer that redirects grub to the actual grub.cfg file and when it is overwritten will never again be updated with new kernels.
If you actually used that command then it can be restored by first removing both the grub.cfg files (/boot/grub2/grub.cfg & /boot/efi/EFI/fedora/grub.cfg) then performing a reinstall of the grub2-common package (which will recreate both those grub.cfg files properly)
Thanks Jeff! it helped me, I also read more about this on the official fedora docs about grub2 (somehow I missed this the first time) and you are right I shouldnt have replaced that symlink.
It works now, I dont see the grub menu any longer which is nice. It did give me a scare when I rebooted and not see the sddm but rebooting again from the console solved it. I am too lazy to report what happened (journalctl gave me an overload of information on doing journalctl | grep grub2
but it works) Thank you!
1 Like