ubuntu 12.04,断电重启后启动时停留在启动菜单,必须敲回车才可以进入系统,查看grub.cfg文件发现有这么一段

function recordfail {   #存在启动失败记录时调用,设置变量recordfail

       set recordfail=1

  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi# 如果grubenv文件存在,并已设置过相关变量,就将变量recordfail保存到grubenv文件。

}

只要存在启动失败记录

if [ "${recordfail}" = 1 ]; then                                                
  set timeout=-1                    #设置超时时间为-1 ,如果不敲回车,不会继续                                         
else                                                                            
  set timeout=10                       #设置超时时间为10秒

在grub用set查看时recordfailt的值确实是1,重启机器时值仍然保留。

这样就知道原因出在哪了,有两种解决办法:

方法1、将timeout=-1   改为timeout=10  这样即使以后存在启动失败记录,也只是延时10秒启动

方法2、启动grub时按c键进行grub, 输入unset recordfail 重置recordfail即可。