Anyway to get GRUB failsafe to timeout?

Solution 1:

Ubuntu has a "cute" (read: annoying) feature where it records a boot failure and sets a grub timeout of -1, disabling auto-boot. You aren't the only one that doesn't like it, see here.

You should be able to work around this by editing /etc/grub.d/00_header, find the section that reads..

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1

..and change it to something sane, like..

if [ "\${recordfail}" = 1 ]; then
  set timeout=10

..then run update-grub.

This file might get reset to default on you during an upgrade of the grub2 package (or the OS), so be careful of that.

Solution 2:

Since Ubuntu 12.10 (and possibly backported to Ubuntu 12.04) the following will work on Ubuntu:

$ echo GRUB_RECORDFAIL_TIMEOUT=20 | sudo tee -a /etc/default/grub
$ sudo update-grub
$ sudo env DEBIAN_FRONTEND=noninteractive dpkg-reconfigure grub-pc

The above was mentioned by Alex in Oct 2013 in response to Shane Madden's answer of Jan 2012. See comments #13 and #14 on this page:

https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/669481