Grub not showing despite being set to not hidden
I have dualboot bluefin and bazzite on separate ssds. the setting is the same on both distros (not hidden) but in both cases I do not see grub menu when booting up
Running ujust reconfigure-grub doesn't change anything
23 Replies
give us your
/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.luks.uuid=luks-c023cf83-a49e-4a26-a93c-de4a69b1d101 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
is this a desktop?
you can increase the timeout from 5 seconds to something higher then do
ujust regenerate-grub
might be that it is showing up but it boots the default option by the time it is displayed on the monitoryeah its a desktop. just increased the timeout to 15, no change
do you have multiple monitors attached?
i know some people use the machine as a htpc and dont always have all monitors on, the grub menu might appear on one that is off
other than that i dont really know why it does not show up for you
Or it also is possible that your firmware directly loads the kernel…
What’s your current boot order?
yeah it has multiple monitors, i will try booting with just one plugged in
current boot order is
-bazzite
-bluefin
I will also try swapping the order and changing bluefin timeout to see if that makes any diff
ok so:
i tried with individual monitors plugged in, no change. when i swapped the boot order from bazzite > bluefin TO bluefin > bazzite, the grub appeared when booting up bluefin. it only showed the bluefin os trees, so i ran
ujust reconfigure-grub
and rebooted. after reboot, the grub did not appear.
I switched the boot order back to bazzite>bluefin, and on first boot the bazzite grub showed up, but only with bazzite os trees. I will try running the reconfigure grub command again but i imagine it will have the same effectHmmmm I would say try checking your
/boot/grub2/grub.cfg
on both bluefin and bazziteI have the same problem. Grub doesn't show up during boot.
Bazzite runs in desktop mode and is the only operating system. Grub is set to 'Not Hidden'.
/etc/default/grub
looks identical to the one above.
/boot/grub2/grub.cfg
:
terminal_output console
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
This is probably the correct section.
What I tried:
- added GRUB_TIMEOUT_STYEL=menu
to /etc/default/grub
(and rebuild the grub.cfg file)
- deactivated auto-loginthis fixed the issue for you?
No. This is just what I tried but didn't work.
Both fives are 0 on my device with grub hidden so this part is correct
Just checked that grub menu is showing when I choose to unhide
https://paste.centos.org/view/e2a025f9
My grub.cfg when unhidden for comparison
I compared it to my .cfg file. Those are the differences:
- I have this part:
### BEGIN /etc/grub.d/15_ostree ###
menuentry 'Bazzite 40 (FROM Fedora Silverblue) (ostree:0)' --class gnu-linux --class gnu --class os --unrestricted 'ostree-0-af78b01d-747d-4c46-b7ad-13e785c86467' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root af78b01d-747d-4c46-b7ad-13e785c86467
linux16 /ostree/default-c52ac74e015d9de15a7e67e8d7e804900251bf13d575e3f1ce65a4b2ba2d3964/vmlinuz-6.9.12-210.fsync.fc40.x86_64 rhgb quiet root=UUID=6791a124-d2de-4423-8e04-ad740d0f7c21 rootflags=subvol=root rw ostree=/ostree/boot.1/default/c52ac74e015d9de15a7e67e8d7e804900251bf13d575e3f1ce65a4b2ba2d3964/0 bluetooth.disable_ertm=1 preempt=full
initrd16 /ostree/default-c52ac74e015d9de15a7e67e8d7e804900251bf13d575e3f1ce65a4b2ba2d3964/initramfs-6.9.12-210.fsync.fc40.x86_64.img
}
menuentry 'Bazzite 40 (FROM Fedora Silverblue) (ostree:1)' --class gnu-linux --class gnu --class os --unrestricted 'ostree-1-af78b01d-747d-4c46-b7ad-13e785c86467' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root af78b01d-747d-4c46-b7ad-13e785c86467
linux16 /ostree/default-e8d5a27f49c180ebb41ffb84dca598e72b364455b7a9d3b378b1d207604cc7ff/vmlinuz-6.9.12-205.fsync.fc40.x86_64 rhgb quiet root=UUID=6791a124-d2de-4423-8e04-ad740d0f7c21 rootflags=subvol=root rw ostree=/ostree/boot.1/default/e8d5a27f49c180ebb41ffb84dca598e72b364455b7a9d3b378b1d207604cc7ff/0 bluetooth.disable_ertm=1 preempt=full
initrd16 /ostree/default-e8d5a27f49c180ebb41ffb84dca598e72b364455b7a9d3b378b1d207604cc7ff/initramfs-6.9.12-205.fsync.fc40.x86_64.img
}
### END /etc/grub.d/15_ostree ###
- I'm missing this part:
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-A4C4-71E2' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root A4C4-71E2
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
# Other OS found, undo autohiding of menu unless menu_auto_hide=2
if [ "${orig_timeout_style}" -a "${menu_auto_hide}" != "2" ]; then
set timeout_style=${orig_timeout_style}
set timeout=${orig_timeout}
fi
- I'm missing the nomodeset
in the following line:
set kernelopts="root=UUID=f0620537-6eb6-4e60-842f-98d39ff75653 ro rootflags=subvol=root/ostree/deploy/default/deploy/a99a9ab7342b7756c5193578ca6404af3b8dc7cfd2ba4bbaef5aeda05225acc8.0 nomodeset rhgb quiet "
I do have a windows dualboot
But the
timeout
in this part can be the problem I presume…?You mean it's too short?
I at least got it too show up when pressing the left arrow key during boot.
I mean something probably changed because there are multiple OSes
I don't have multiple OSes. Only Bazzite.
I didn't format the SSD before installing Bazzite, though. Just installing it over Tumbleweed with the delete option during install.
Try adding these two lines to the end of your grub.cfg
set timeout_style=menu
set timeout=5
Will be undone if you configure grub again but should work for now And reconfigure grub after booting back once
please for the love of everything dont edit grub.cfg directly
just add
GRUB_TIMEOUT_STYLE=menu
and GRUB_TIMEOUT=5
to /etc/default/grub and regenerate grub with the ujustI personally suspect it’s the show once rule interfering
I already tried that. Didn't work.
im responding to @Linus Xu suggesting to edit the grub.cfg directly to add them.
editing it directly is literally a footgun and there is a reason you just add the grub variables you want to the defaults file and regenerate grub
And I agree with this
Just that I’m trying a temporary workaround here…