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

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

我最近将 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随后跑步。

我怎样才能使系统再次启动?

答案1

将以下内容添加到/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 终端。

答案3

如果你查看 /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 配置sudo update-grub应该可以解决问题。但有趣的问题是,为什么在手动按下 Enter 后 grub 仍然认为启动失败。

答案4

试试这个。我不必使用实时磁盘,因为我可以通过选择 grub 中的选项并按回车键来手动启动操作系统。这解决了我的问题。祝你好运!

http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/

相关内容