Ever since I’ve set up EFI boot on my machine using grub I had this issue with timeout option not wanting to go away.

Digging into the issue I first looked at /boot/grub/grub.cfg where I found this piece of code:

if [ $grub_platform = efi ]; then
  set timeout=30
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi

“This is weird” I said to myself, where does that come from? It is defined in /etc/grub.d/00_header file

if [ "$recordfail_broken" = 1 ]; then
  cat << EOF
if [ \$grub_platform = efi ]; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
  if [ x\$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi
EOF
fi

So this states if GRUB_RECORDFAIL_TIMEOUT is not defined or is null default of 30 should be set.

According to that I’ve added

GRUB_RECORDFAIL_TIMEOUT=10

to my /etc/default/grub, which should give me 10 second timeout (instead of 30). I don’t set it to null or 1 since I want to have a bit of wiggle-room if things go south during the boot process.

Don’t forget to run:

sudo update-grub