如何在 Grub2 中启用启动超时?

如何在 Grub2 中启用启动超时?

我正在尝试在 Ubuntu 9.10 上的 grub2 中启用启动超时选择。

我修改了/etc/default/grub:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"
GRUB_CMDLINE_LINUX=""

并运行update-grub,但我仍然没有启动超时计数器。您还可以做什么来启用此功能?

答案1

答案取自http://ubuntuforums.org/showthread.php?t=1373965

在 /etc/grub.d/00_header 文件的末尾,注释掉 if 条件,除了常规的设置超时行,如下所示:

#if [ \${recordfail} = 1 ]; then
#  set timeout=-1
#else
  set timeout=${GRUB_TIMEOUT}
#fi

运行 update-grub 以使用新设置重新生成 grub.cfg:

sudo update-grub

重新启动,现在它应该始终在超时后启动默认选项,即使上次启动失败。

答案2

该问题与 grub env 值有关:recordfail。我能够使用以下命令解决:

grub-editenv /boot/grub/grubenv unset recordfail

另一个可以保证超时始终有效的选项是:

rm /boot/grub/grubenv

如果不这样做,grub 可能会重写该recordfail值。对于嵌入式系统,我需要这个。

答案3

要获得与以前的答案非常相似的结果,有一种侵入性较小的选择是将以下行添加到您的/etc/default/grub

GRUB_RECORDFAIL_TIMEOUT=5

...或您想要的秒数。将其设置为 可能会很危险0,我不确定。

相关内容