Using all of the solutions described on this site, setting the Grub menu wait time to zero does not work.

I did the following:

sudo cp /etc/default/grub /etc/default/grub.old    
sudo gedit /etc/default/grub

Uncommented this line, per instruction.


Set this line, per instruction.


/etc/default/grub now looks like this:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg. 
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash profile"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)

# Uncomment to disable graphical terminal (grub-pc only)

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux

# Uncomment to disable generation of recovery mode menu entries

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Having edited the /etc/default/grub file -->

sudo update-grub

After restarting, Grub wait-time is still set to 10 seconds.

I was able to get the wait time to 1 second with just one simple change. Edited these two lines in /etc/default/grub



Commented the first back to the default value, and set GRUB_TIMEOUT to "1".


sudo update-grub

This solution works, but my question is:

Where is the trap that resets the TIMEOUT value to 10 seconds when GRUB-TIMEOUT is set to "0".

Maybe one of the "IF" tests in grub.cfg??

  • May be this will help you unix.stackexchange.com/questions/119865/…
    – Qasim
    Jun 9, 2015 at 1:39
  • @Qasim I had read that, but there is no explanation as to why Grub defaults to 10 seconds when values are set to "0" and yet if you set 'GRUB-TIMEOUT="1"' Grub functions exactly like it should, boot sequence starts in 1 second.
    – RCF
    Jun 9, 2015 at 2:28
  • Just for troubleshooting purposes, does it still do this if you comment out the GRUB_HIDDEN_TIMEOUT and GRUB_HIDDEN_TIMEOUT_QUIET lines and only have the GRUB_TIMEOUT line set to 0? Jun 9, 2015 at 4:33
  • @thomasrutter yes, I have tried this in every possible combination using the zero value. There is something that does not allow a 0 value if you are dual booting OS's. There are a couple of accepted answers on this site stating that it will work, but that simply is not the case with Grub2 and 15.04.
    – RCF
    Jun 9, 2015 at 12:46
  • Possible duplicate of Is it possible to completely disable Grub timeout? Nov 18, 2019 at 10:53

5 Answers 5


This is a bug. The problem is in the file /etc/grub.d/30_os-prober.

As presented here, a workaround is to add the files /etc/grub.d/25_pre-os-prober and /etc/grub.d/35_post-os-prober.

The two files must also be marked as executable to work.

After adding this two files, your modifications to the variable GRUB_TIMEOUT in /etc/default/grub should work as expected.

If you are not dual booting, another workaround is to uninstall os-prober.


#! /bin/sh
# file: /etc/grub.d/25_pre-os-prober
set -e

# Save the $timeout and $timeout_style values set by /etc/grub.d/00_header
# before /etc/grub.d/30_os-prober messes them up.

cat << EOF
set timeout_bak=\${timeout}
set timeout_style_bak=\${timeout_style}


#! /bin/sh
# file: /etc/grub.d/35_post-os-prober
set -e

# Reset $timeout and $timeout_style to their original values
# set by /etc/grub.d/00_header before /etc/grub.d/30_os-prober messed them up.

cat << EOF
set timeout=\${timeout_bak}
set timeout_style=\${timeout_style_bak}

If you read the documentation at info -f grub -n 'Simple configuration', it is said that GRUB_HIDDEN_TIMEOUT_* is deprecated.

Could you try using instead in /etc/default/grub:

# rest of file unchanged


sudo update-grub

and see if it works or not.

You could double-check in /boot/grub/grub.cfg looking for timeout that the update has correctly been done.


There is an override in grub for when the timeout is 0 seconds to replace it with 10 seconds. Rather than editing grub scripts as other answers recommend you can simply use:


This will work because the grub overrides will not find "0" to be equal to "0.0".


I've always been able to get a 0 second time, although a 1 second time isn't much more wasted time. Try changing this line

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash profile"

to this:


I don't see anything in this config file that seems out of whack, but you might try this if you're desperate to save 1 second during boot time.

  • I'm really not desperate at all, 1 second is totally acceptable. What I am seeking is where is the trap which disallows the "0" wait time and resets to 10 seconds. Wouldn't it be reasonable to expect a warning that the "0" value is not accepted, please reset to any non-zero number?
    – RCF
    Jun 10, 2015 at 20:56
  • It would be reasonable to expect that, but it's also reasonable for the devs to expect users to not need to change it. Is update-grub a binary file? or is it just a script?
    – Daniel
    Jun 11, 2015 at 16:43
  • you should be able to answer your Grub question here -> [help.ubuntu.com/community/Grub2]
    – RCF
    Jun 11, 2015 at 17:44

Editing /etc/default/grub is insufficient.

The following modifications are also required:

Disable grub timeout using one of these methods:

sudoedit /boot/grub/grub.cfg  

comment out these lines (by placing a # at the start of the lines)

#if [ "${timeout}" = 0 ]; then  
#set timeout=10  

save the file and exit.

OR (better, as the above would need to be re-done each time the file is generated, which happens whenever update-grub is called):

sudoedit /etc/grub.d/30_os-prober

comment out these lines

#if [ "\${timeout}" = 0 ]; then
#set timeout=10

save, exit and then run sudo update-grub.

  • Your answer does not address what the OP asked.
    – David
    Mar 17 at 13:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.