我最近将 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_TIMEOUT
或GRUB_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/