在 16.10 上默认跳过 Grub - 奇怪的 Grub 行为,/etc/default/grub 没有被使用吗?

在 16.10 上默认跳过 Grub - 奇怪的 Grub 行为,/etc/default/grub 没有被使用吗?

我在同一台 Inspiron i7559 机器上安装了 Ubuntu 16.10 和 Win10。我希望能够快速启动,所以我不想等待 10 秒。我希望我的电脑自动启动上次启动的操作系统,除非我shift在启动时按下该键,在这种情况下它应该显示没有计时器的 Grub 菜单。我选择该shift键是因为我看到了一些听起来像是如果你有 Grub 的默认行为的东西。这应该会让它更简单。但事实并非如此。

这是我的文件的相关部分/etcdefault/grub。由于我尝试用不同的方法解决这个问题,所以有点混乱询问 Ubuntu答案:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
#GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_FORCE_HIDDEN_MENU="true"
export GRUB_FORCE_HIDDEN_MENU

感觉好像在很多方面/etc/default/grub都被忽略了update-grub。运行时 grub.cfg 中唯一明显变化的update-grub是手动重命名的 Windows 启动选项切换回通用选项。

使用上述文件,我无法打开 grub - 它会自动启动以前启动的东西,shift无论有没有shift密钥。

如果没有最后两行,我会收到各种错误,例如 Grub 超时是否允许为 0。无论如何,启动都会加载 Grub 并将其设置为 10 秒。这是因为 if 语句os-prober不允许超时为 0。我尝试了针对旧版本 Ubuntu 提供的几种解决方案,虽然我不确定它们之间有什么区别,但它们都没有用。

文件末尾还有以下内容:

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
GRUB_INIT_TUNE="1000 334 1 334 1 0 1 334 1 0 1 261 1 334 1 0 1 392 2 0 4 196 2"

最后一行应该在启动 grub 之前播放一些音调,但我没有听到任何声音。

其中一些问题可能可以在 grub.cfg 中修复,但我正在尝试设置 Grub 以按照我想要的方式运行,使其不受更新 grub 的影响。

有什么建议么?

答案1

它对我有用

GRUB_HIDDEN_TIMEOUT=
  • = 符号后未输入任何值
  • 菜单将显示 GRUB_TIMEOUT 指定的秒数。

以下链接描述了此设置和其他几个设置。

https://help.ubuntu.com/community/Grub2/Setup

答案2

设置GRUB_HIDDEN_TIMEOUT=0GRUB_TIMEOUT=0会锁定您自己,使您无法访问启动菜单。这种情况在多启动环境中很成问题,即使在单启动环境中,如果您需要,您也必须编辑/etc/default/grub并运行sudo update-grub才能重新获得对启动菜单的访问权限。而且,在多启动环境中重新获得对启动菜单的访问权限可能会更加困难,具体取决于要启动的默认操作系统。为了防止这种不良情况,如果发现/etc/grub.d/30_os-prober多个操作系统并且 GRUB_TIMEOUT 设置为零,脚本会将超时重置为 10 秒。

您需要配置 Grub 以便至少给您一些时间来执行Esc。以下配置可以满足您的需求:

GRUB_DEFAULT=已保存
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=隐藏
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="安静的启动"
GRUB_CMDLINE_LINUX=""

此配置给您两秒钟的时间Esc来显示启动菜单,否则将加载默认操作系统而不显示启动菜单。

相关内容