如何强制Ubuntu在卡住的启动菜单上启动?


31

我有Ubuntu Server 11.04,但它没有头(没有监视器)。我想要能够访问它的唯一方法是通过SSH远程访问。但是,有时,例如断电后,服务器重新启动时,它将卡在Grub引导菜单上,并且不会递减计数。它会挂在那里等我选择第一个启动项。这意味着我必须去那里并插入显示器和键盘。

但是我不能远程这样做。我如何强制其继续启动以引导到引导项1(默认),而不考虑断电或其他原因?

Answers:


10

这个问题的答案可以在grub文件中找到 /etc/grub.d/00_header

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=${2}
fi
EOF
}

将超时值设置为-1将停止递减计数。将值更改为> 0的值,即set timeout=10

文件的这一部分看起来像

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=${2}
fi
EOF
}

然后跑

sudo update-grub2

谢谢。这是文件中“ make_timeout”部分的内容吗,因为我在搜索时会看到许多“ recordfail”行。如果是这样,是否将第二个“设置超时”选项保持原样(说“ else”的那个)?
nLink 2011年

正确-我将更新答案进行澄清
fossfreedom

如果我现在运行sudo shutdown -r,但是我对系统执行ping操作,但发现它没有重新联机,那么当我手动将其关闭然后再次打开时,是否有任何地方可以检查它为什么崩溃了?
nLink 2011年

它又被卡住了吗?还是刚刚关机?做一个男人“关闭”有几个文件写入的东西。
fossfreedom

3
认为该解决方案不是永久性的,因为如果grub软件包收到更新,它将被覆盖。使用“ GRUB_RECORDFAIL_TIMEOUT”的“其他解决方案”更合适。因此,我恭敬地赞成这个解决方案,而赞成另一个。
rik-shaw 2013年

36

从Ubuntu 12.04开始,一个更直接但仍未记录的解决方案是使用/etc/default/grub重写recordfail超时的方法:

GRUB_TIMEOUT=10
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

这样的选项完全没有文档记录的事实真是太糟糕了。

编辑

实际上,对支持的GRUB_RECORDFAIL_TIMEOUT添加是在12.04周期的中间,从version开始1.99-21ubuntu3.3

  grub2 (1.99-21ubuntu3.3) precise-proposed; urgency=low

[ Ben Howard ]
* Parameterization of recordfail setting. This allows users to define the
  default time out of GRUB when recordfail has been set. The curren
  setting causes hangs on headless and appliances where access to the
  console is limited or prohibited.  (LP: #669481)  [1]

-- Louis Bouchard <louis.bouchard@canonical.com>  Tue, 21 Aug 2012 10:51:58 +0200

更多详细信息,请参见LaunchPad


进行更改后,还要运行update-grub以生成更新的/boot/grub/grub.cfg文件
Colt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.