Grub does not autoboot the default option after upgrade to 12.10

Solution 1:

Add the following to /etc/default/grub

GRUB_RECORDFAIL_TIMEOUT=0

Save and run

sudo update-grub

Solution 2:

I have the following set of values in my /etc/default/grub file:

GRUB_DEFAULT=5
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

I have several other operating systems on my computer and the GRUB_DEFAULT setting seems to set the specific initial highlighted item on the list starting at 0 and counting upward. During the countdown time of 10 seconds I can change between the other entries on the list.

I would suggest you try the following settings making sure that you comment the GRUB_HIDDEN_TIMEOUT parameter:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

Then work backwards from that, gradually making the GRUB_TIMEOUT or GRUB_HIDDEN_TIMEOUT parameters 1 or 2 to shorten the wait on the default selected system.

Remember that you may need to Ctrl+Alt+T to get to the terminal for sudo gedit of the file.

Solution 3:

If you look at /etc/grub.d/00_header You would see these lines:

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
else
  set timeout=${2}
fi
EOF
}

basically, grub2 is capable of detecting errors in boot process and fallback to manual booting.

Changing these lines to something like

make_timeout ()
{
    cat << EOF
  set timeout=${2}
EOF
}

and regenerating grub config with sudo update-grub should fix the problem. The interesting question, though is why grub keep thinking booting fails after you manually press Enter.