Ubuntu 14.04 在升级内核或是不安全断电情况下,重启后GRUB 会停留在系统选择界面,并不会自动超时,需要手动选择并按回车才能继续启动. 在不方便接触物理机或 VPS 远程开机时,是个很麻烦的事.

主要原因是/boot/grub/grub.cfg 把 timeout 设置成了'-1'.

  if [ "${recordfail}" = 1 ] ; then
   set timeout=-1
  else
   if [ x$feature_timeout_style = xy ] ; then
     set timeout_style=hidden
     set timeout=0
   # Fallback hidden-timeout code in case the timeout_style feature is
   # unavailable.
   elif sleep --interruptible 0 ; then
     set timeout=0
   fi
  fi

grub.cfg 会被重写覆盖,得修改/etc/default/grub,加入一行

  GRUB_RECORDFAIL_TIMEOUT=5

更新 grub.cfg

  update-grub

然后'-1'的设置会变更为'5',这样不用手动操作,系统会在5秒超时会继续启动,不再挂住.