如何在 Ubuntu 20.04 中更改 grub 超时

如何在 Ubuntu 20.04 中更改 grub 超时

答案很老的问题建议编辑

/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

并且:

  1. 设置quick_boot="1"quick_boot="0"
  2. 设置set timeout=10set 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值更改3000,然后保存(您需要是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 双启动。

相关内容