升级到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

如何让系统再次启动?

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

 GRUB_RECORDFAIL_TIMEOUT=0 

保存并运行

 sudo update-grub 

我的/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。

如果你看一下/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 } 

并使用sudo update-grub重新生成grub配置应该可以解决问题。 有趣的问题是,在您手动按Enter后,grub一直认为启动失败。

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

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