Grub menu still appears on Zorin 17

Here is my grub config. But I still see the menu where I had to select the option and it waits for like 10 seconds. How can I skip this - that my laptop straight away boots into Zorin?

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

You should never set your timeout to 0

It means that when you need to access the Grub Menu in order to get to the Recovery Menu, you will be unable to.
Please set that to 5 if you are not willing to wait for ten seconds...

What is your terminal output for

efibootmgr

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001,0002,0003
Boot0000* ubuntu
Boot0001* UEFI:CD/DVD Drive
Boot0002* UEFI:Removable Device
Boot0003* UEFI:Network Device

Interesting... Is Secure Boot enabled?

No. It's disabled.

Do these look familiar to you?

Did you have a different OS installed before install Zorin OS or did you previously install Zorin OS alongside of another OS or distro?

You can try (while running Zorin OS):

sudo grub-install --recheck --no-rs-codes

sudo update-grub

Yes, one is my wireless mouse adapter I guess.

No. I bought a new NVMe and installed Zorin 17 on it. And it is on where I am writing this from.

After running those commands I restarted and still saw the grub menu. Looked like it's still counting to 10, instead of 5.

How strange... please recheck

sudo nano /etc/default/grub

and see what timeout is set to...

I did check.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

It really looks as though os-prober is sensing another operating system present. You can check what

sudo os-prober

shows in terminal. If it shows nothing, then see below. If it shows another OS, please relay that information.


If it does detect another OS, it automatically resets the timeout to 10 overriding the Grub File.
You can find the line 32 in (edit) /boot/grub/grub.cfg /etc/grub.d/30_os=prober

adjust_timeout () {
  if [ "$quick_boot" = 1 ] && [ "x${found_other_os}" != "x" ]; then
    cat << EOF
set timeout_style=menu
if [ "\${timeout}" = 0 ]; then
  set timeout=10
fi

You can comment those lines out to fi (should be line 38), save the file, then in terminal run

sudo update-grub

1 Like

Not sure. Can't even find the text "adjust_timeout" in the grub.cfg file.

Anyways, I can live with this. A 10-sec delay is fine.

I recommend elevating to Root

sudo -i

If using Core:

nautilus

If using Lite:

thunar

and navigating to /boot/grub/grub.cfg and right clicking the file and choosing to open with your preferred text editor. Ensure that under the Editors settings or preferences, that Line Numbers are set to shown.
Then scroll down a short ways to Line 32.

This is what I see on line 32:

image

Ok, tap ctrl+f and enter into the find entry field

adjust_timeout

It's not present

image

wow ok...
How about

timeout_style=menu

I see this. Just one occurrence.

image

I just realized the trouble by scrolling up and looking...
I misdirected you to the target, here.
/etc/grub.d/30_os=prober is the file we should be looking at.

It's wee hours of the morning here and I am going on too little sleep...

Okay. So which lines do I comment?

image

Thank you for your assistance here!