Hm. That all looks pretty OK.
Though… just a shot-in-the-dark theory, but see this section?
That’s meant to set the grub menu timeout to 60 seconds as a one-time thing, if menu_show_once
is set in the grub environment… at which point it’s supposed to clear that option and save back the updated environment, so it only happens, you know… “once”.
If that’s failing, it’s possible Grub is using the 60-second timeout every time.
You can check the contents of the saved grub environment (stored in /boot/grub2/grubenv
) from the running system:
$ sudo grub2-editenv list
saved_entry=5593b6f732944ad491ba36d3b37def31-5.4.18-200.fc31.x86_64
boot_success=1
boot_indeterminate=0
kernelopts=root=/dev/mapper/vg00-lv_root ro rd.lvm.lv=vg00/lv_root
rd.lvm.lv=vg00/lv_swap quiet rd.driver.blacklist=nouveau
modprobe.blacklist=nouveau nvidia-drm.modeset=1
If that file doesn’t exist, or can’t be read by grub2-editenv
, or still shows menu_show_once
after you’ve already booted, then grub isn’t updating its environment properly. If that’s the case, sudo grub2-editenv create
will create or replace it with an empty environment file, which hopefully will fix the problem of updating the contents.
It’ll also clear menu_show_once
if it’s still there, though if there are any other contents you want to restore you’ll need to put them back. kernelopts
is the only critical one, since your boot entries in /boot/loader/entries/
most likely reference it, e.g. this is mine for the current kernel:
$ sudo cat /boot/loader/entries/5593b6f732944ad491ba36d3b37def31-5.4.18-200.fc31.x86_64.conf
title Fedora (5.4.18-200.fc31.x86_64) 31 (Thirty One)
version 5.4.18-200.fc31.x86_64
linux /vmlinuz-5.4.18-200.fc31.x86_64
initrd /initramfs-5.4.18-200.fc31.x86_64.img $tuned_initrd
options $kernelopts $tuned_params
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
So if you do clear the environment, and it previously had a kernelopts
definition, you’ll want to restore it by cutting-and-pasting the entire variable definition from the previous grub2-editenv list
output into a grub2-editenv set
command:
$ sudo grub2-editenv set 'kernelopts=root=/dev/mapper/vg00-lv_root ro rd.lvm.lv=vg00/lv_root rd.lvm.lv=vg00/lv_swap quiet rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1'