How to change grub timeout in Ubuntu 20.04

Solution 1:

It's kind of a bug in GRUB.

In /etc/grub.d/30_os-prober, here's the code snippet that causes the problem...

quick_boot="1"

export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"

. "$pkgdatadir/grub-mkconfig_lib"

found_other_os=

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
EOF
  fi
}

To change/fix the 10 second timeout, edit /etc/grub.d/30_os-prober with:

sudo -H gedit /etc/grub.d/30_os-prober

and either:

  1. set quick_boot="1" to quick_boot="0"
  2. set set timeout=10 to set timeout=3

Note: or edit /etc/default/grub and set GRUB_TIMEOUT=3, or something between 1 and 10.

sudo update-grub

Note: See here for more details/options.