升级到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_TIMEOUT
或GRUB_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/