升级到12.10后,Grub不会自动引导默认选项


12

我最近将Ubuntu从12.04升级到12.10,自那时以来,该系统不会自动启动。它总是打开启动菜单,我必须按Enter键才能启动Ubuntu。

似乎正在忽略超时值,并使用“无休止”超时。

没有其他系统(没有双重引导),只有默认情况下默认安装的选项Ubuntu 12.04安装。

/etc/default/grub只有这些有效的选择:

GRUB_DEFAULT='Ubuntu'
GRUB_HIDDEN_TIMEOUT=1
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_TERMINAL=console

我进行了实验GRUB_DEFAULT,将其值设置为“ 0”,“ 1”,“ Ubuntu”,但没有任何帮助。

是的,我update-grub以后总是跑。

如何使系统再次启动?


Answers:


10

将以下内容添加到 /etc/default/grub

GRUB_RECORDFAIL_TIMEOUT=0

保存并运行

sudo update-grub

2

我的文件中包含以下一组值/etc/default/grub

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

我的计算机上还有其他几个操作系统,并且GRUB_DEFAULT设置似乎设置了列表中特定的初始突出显示项,从0开始并向上计数。在10秒的倒计时期间,我可以在列表上的其他条目之间进行切换。

我建议您尝试以下设置,以确保对GRUB_HIDDEN_TIMEOUT参数进行注释:

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

然后从此倒退,逐渐使GRUB_TIMEOUTGRUB_HIDDEN_TIMEOUT参数1或2缩短对默认选定系统的等待时间。

请记住,您可能需要按Ctrl + Alt + T才能进入终端以对文件进行sudo gedit。


2

如果查看/etc/grub.d/00_header,您将看到以下行:

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

基本上,grub2能够检测引导过程中的错误以及回退到手动引导的错误。

将这些行更改为类似

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

并重新生成grub config sudo update-grub应该可以解决问题。有趣的问题是,为什么在您手动按Enter键后,grub仍然认为启动失败。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.