I have Ubuntu 10.10 Server installed on a single-board machine in a semi-embedded environment; no keyboard or screen, just SSH access to it.
So it's really frustrating when it occasionally boots up and gets stuck on the GRUB menu, waiting for a keystroke to select the first option.
How do I configure GRUB to under no circumstances wait for a keystroke?
Update #1: There is no menu.lst, since this is GRUB 2. But I do have an /etc/default/grub which is like so:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
Update #2: I figured it out. On boots which follow unsuccessful boots, GRUB disables its own timeout. Since showing the menu makes a boot unsuccessful, this is an inescapable loop. This behaviour may be disabled by editing the /etc/grub.d/00_header file, and changing the make_timeout function:
make_timeout ()
{
echo "set timeout=0"
}
Now exit and re-run the grub configuration updater script:
sudo update-grub2
It makes no sense to me that this behaviour would be the default for Ubuntu Server, a product intended for machines accessed by console.