I have a laptop which I intend to be dual-boot. It previously booted into Windows (7), and after Linux install now boots directly into Linux (openSUSE). I've edited /etc/grub.d/40_custom
to add the Windows chainloader entry. So far, so good.
Unfortunately I can't get GRUB2 to display the selection menu at all, even to select the Safe Mode entry for the Linux install. I get a split-second flash of the "welcome to grub" message and then it boots directly into the default Linux entry.
Things I have tried:
- Setting
GRUB_TIMEOUT
to an integer value andGRUB_HIDDEN_TIMEOUT
to- 0
- blank
- commented out
- Setting
GRUB_HIDDEN_TIMEOUT_QUIET
to bothtrue
andfalse
- Setting
GRUB_TERMINAL
toconsole
- Removing
quiet
andsplash=silent
fromGRUB_CMDLINE_LINUX_DEFAULT
I am regenerating the config each time with /usr/sbin/grub2-mkconfig
Other info:
- Holding shift during boot doesn't bring up the menu regardless of the state of
GRUB_HIDDEN_TIMEOUT
- I'm pretty sure this machine isn't using UEFI (I have no
/sys/firmware/efi
directory) - Legacy USB support is enabled in the BIOS.
Anything else I can try? This is getting really aggravating, I never had this much trouble with grub legacy!
Edit:
Section of grub.cfg
related to timeout:
if [ x${boot_once} = xtrue]; then
set timeout=0
elif [ x$feature_timeout_style = xy ]; then
set timeout_style=menu
set timeout=0
# Fallback normal timeout code in case the timeout_style feature is unavailable
else
set timeout=0
fi
This is different to the output displayed by the grub update script, which has timeout = 10
! Editing the grub.cfg
file directly displays the menu as expected.
grep -i timeout /boot/grub/grub.cfg
Esc
need to be holded, while booting, in some cases.Shift
doesn't always work. Try withEsc
button, may be it will work on OpenSUSE too.