GRUB2 menu can't be hidden, and kernels only available for selection on one of two devices

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?

Thanks.

Try this (untested) command:

sudo grub2-editenv - set menu_auto_hide=true

Thanks for the suggestion.

Unfortunately, that didn’t make any difference. The grub menu shows exactly the same.

I think you need to run grub2-mkconfig -o /boot/grub2/grub.cfg after that change. [1] [2]


  1. ↩︎

  2. ↩︎

Thanks for the links.

I did try that already, but it’s the same. I’ll read through those links and see if there’s something I’m missing.

Thank you.

You could also try looking at journalctl --no-host --no-pager -b -g grub-boot

Also in addition, run sudo grub2-editenv - list and show the results.

1 Like

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.