答案很老的问题建议编辑
/etc/default/grub
该文件包含以下内容:
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
我看到启动系统时超时时间为 10 秒。但根据配置文件,超时时间为 0 秒。那么,Ubuntu 20.04 中超时实际定义在哪里?
答案1
这是 GRUB 中的一个错误。
在 中/etc/grub.d/30_os-prober
,这是导致问题的代码片段……
quick_boot="1"
export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"
. "$pkgdatadir/grub-mkconfig_lib"
found_other_os=
adjust_timeout () {
if [ "$quick_boot" = 1 ] && [ "x${found_other_os}" != "x" ]; then
cat << EOF
set timeout_style=menu
if [ "\${timeout}" = 0 ]; then
set timeout=10
fi
EOF
fi
}
要更改/修复 10 秒超时,/etc/grub.d/30_os-prober
请使用以下命令进行编辑:
sudo -H gedit /etc/grub.d/30_os-prober
并且:
- 设置
quick_boot="1"
quick_boot="0"
- 设置
set timeout=10
set timeout=3
笔记:或者编辑/etc/default/grub
并设置 GRUB_TIMEOUT=3,或 1 至 10 之间的某个值。
sudo update-grub
笔记: 看这里了解更多详细信息/选项。
答案2
我正在使用 update-grub 2.02-2ubuntu8.23。
在文件 /etc/default/grub 中我添加了:
GRUB_RECORDFAIL_TIMEOUT=5
efi 的默认值为 30 秒。
当我将值设置为 5 时,它就起作用了,如果我没有响应菜单,我就不再需要等待 30 秒。
GRUB_RECORDFAIL_TIMEOUT 可能不适用于所有版本的 grub。我找不到相关文档。要查看它是否适用于您的 grub 版本,请搜索 /etc/grub.d,这是一组用于创建 grub 配置的文件:
$ grep GRUB_RECORDFAIL_TIMEOUT *
00_header: set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
00_header: set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
答案3
重要的是要了解,在某些情况下,例如 EFI Boot 处于活动状态或前双重启动,当您删除其中一个分区时,grub 菜单在启动时继续显示正确的文件,以更改这些情况,它在启动 Grub 中。如果此回答程序不起作用,您需要更改“/boot/grub”中第 119 行的值。如果您不知道,命令是“sudo gedit /boot/grub”。
在本部分中:
if [ $grub_platform = efi ]; then
set timeout=00
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
fi
fi
将第二行的set timeout=30
值更改30
为00
,然后保存(您需要是root用户)并重新启动。
答案4
蒂亚戈·卢西奥 (Thiago Lucio) 的回答对我很有帮助。
我必须改变
"if [ \$grub_platform = efi ]; then
set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}"
到
"if [ $grub_platform = efi ]; then
set timeout=3"
在/etc/grub.d/00_header
我使用 EFI 双启动。