I have Fedora 41 installed on two devices, a laptop and a desktop.
On both devices, the grub menu appears, even though I have only one OS installed, Fedora 41. During the 5 second countdown:
On the laptop, I can select previous kernels or rescue with the arrow keys.
On the desktop, I can only select the most recent kernel or rescue. Previous kernels appear on screen, but the arrow keys skip over them. Sometimes the screen will just freeze here if I use the arrow keys.
In both cases, laptop and desktop, I would be happy to hide the grub menu entirely, but I can’t find a working solution for that. I’ve tried using GRUB_DEFAULT=0 and updating the grub configuration file afterwards, but it makes no difference.
Hiding the grub menu entirely would be the main solution I need, but just in case I ever want to use a previous kernel, it would also be good to solve the problem of buggy behavior in the grub menu on the desktop.
Does anyone have a good solution to either - or both - of these two problems?
You first should see what is in the grubenv file with sudo grub2-editenv - list
If it contains the menu_auto_hide attibute with any value other than 1 then remove it with sudo grub2-editenv - unset menu_auto_hide
If not there or you removed it the proper command to add it should be sudo grub2-editenv - set menu_auto_hide=1
# grub2-editenv - list
saved_entry=594ece762a4b48678f35f7be2ddf7410-6.14.0-63.fc42.x86_64
boot_success=1
boot_indeterminate=0
# grub2-editenv - set menu_auto_hide=1
# grub2-editenv - list
saved_entry=594ece762a4b48678f35f7be2ddf7410-6.14.0-63.fc42.x86_64
boot_success=1
boot_indeterminate=0
menu_auto_hide=1
# grub2-editenv - unset menu_auto_hide
# grub2-editenv - list
saved_entry=594ece762a4b48678f35f7be2ddf7410-6.14.0-63.fc42.x86_64
boot_success=1
boot_indeterminate=0
Man grub2-editenv to see the details, though it does not show all the options available.
By default a single boot system with fedora should have that option already set.
Grub does not recognize ‘true’ or ‘false’, but uses ‘1’ as true and ‘0’ or unset as false.