是否有可能完全禁用Grub的超时时间?

我正在为我妻子的电脑设置双系统安装。我想禁用选择默认为Ubuntu的操作系统的超时时间,这样电脑就不会在没有选择的情况下启动了。(例如:GRUB_TIMEOUT=INFINITE)是不是只需要将其留空或者在/etc/default/grub文件中注释掉这一行?我希望我妻子可以在她新装的双系统电脑上轻松选择操作系统。
我还想知道在此之后更新Burg是否会保留这个更改——因为操作系统的大图标对新手更友好一些。
4个回答

编辑 /etc/default/grub(使用root权限),将GRUB_TIMEOUT的值从 10 改为 -1,保存文件,然后运行sudo update-grub。重新启动计算机,现在你有无限的时间来选择操作系统。
虽然这在GRUB中有效,但在BURG中不起作用,你需要将GRUB_TIMEOUT的值更改为一些较大的数字,例如120秒,在引导进入任何操作系统之前等待,并运行sudo update-burg来反映这些更改。还请注意,这个更改必须在文件/etc/default/burg中进行,因为BURG不考虑在/etc/default/grub中设置的选项。

非常好的回答。非常感谢你。我将它设置为600秒与Burg一起使用,效果非常棒。 - Lasher
这适用于哪些版本的Ubuntu? - Flimm

将超时设置为-1会使GRUB无限等待。
这意味着在启动任何操作系统之前,您需要手动选择一个条目并按Enter键。

当运行update-grub时,会出现一个警告,提示设置grubtimeout为非零数值不再支持。无论我将grub超时值更改为什么,超时值始终保持在10。如果你遇到这个问题,解决方法是编辑位于/boot/grubgrub.cfg文件。在脚本的末尾附近,脚本说IF TIMEOUT = 0 then timeout= 10。将10更改为-1。不再有倒计时。
  1. gksu gedit /boot/grub/grub.cfg

  2. 找到脚本末尾附近的部分,其中写着IF TIMEOUT = 0 then timeout= 10。将10更改为-1

这是一个解决方法,如果以后运行update-grub,它将被还原。除非手动运行update-grub,否则不是永久性的。

(适用于14.04版本。)


编辑/etc/grub.d/30_os-prober文件:
sudo gedit /etc/grub.d/30_os-prober

找到以下内容:
if [ "\${timeout}" = 0 ]; then
  set timeout=10
fi

set timeout=0替换set timeout=10 保存并更新grub配置:
sudo update-grub

在Ubuntu 19.10上对我有效。

不建议编辑生成的脚本。在编辑/etc/default/grub配置文件后,使用grub-mkconfig -o /boot/grub/grub.cfgupdate-grub脚本即可。只需在其中添加GRUB_TIMEOUT=-1 - Balázs Börcsök
1@BalázsBörcsök,存储在 /etc/grub.d/ 目录中的文件不是生成的文件,相反,它们是用于生成 /boot/grub/grub.cfg 的源脚本。您可以阅读 /etc/grub.d/README 的内容。问题在于名为 30_os-prober 的脚本被编写成一种方式,如果找到了其他操作系统,它会强制将 GRUB 的超时设置为 10 秒。请参阅 Maxim Mazurok 提供的第二个代码片段 - 在 grub.cfg 脚本的全局范围内设置了 timeout 变量,在此之后再将全局的超时变量设置为在 /etc/default/grub 中定义的值 GRUB_TIMEOUT - Kyselejsyreček