尽管 GRUB_TIMEOUT=10,Grub 菜单仍未等待

尽管 GRUB_TIMEOUT=10,Grub 菜单仍未等待

我在 Windows 7 上安装了 Ubuntu 12.04。

grub 菜单似乎不听使唤GRUB_TIMEOUT=10,我看到 grub 菜单在那里停留了一瞬间,然后它立即默认为第一个选项。

我第一次安装 ubuntu 时,Grub 菜单运行良好。我无法确定到底是什么破坏了它(可能是某些更新?)。我确实使用 gparted 调整了我的 ubuntu 分区的大小,但不确定这是否是导致问题的原因。以下是我从 etc/default/grub 中设置的设置

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

我该如何解决?

编辑:正如“kamil”所建议的这是我迄今为止尝试过的但没有成功的方法-

1)启动时按住shift键

2)

sudo gedit /etc/default/grub
edit GRUB_TIMEOUT to `GRUB_TIMEOUT=10`
sudo update-grub

3)

sudo gedit /etc/default/grub
edit GRUB_TIMEOUT to `GRUB_TIMEOUT=10`
sudo update-grub2

4)

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

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

然后sudo update-grubsudo update-grub2

5)安装引导修复

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair

启动修复输出 -

启动已成功修复。

...

[当前使用的操作系统 - Ubuntu 12.04.1 LTS] 的启动文件距离磁盘的起始位置较远。您的 BIOS 可能无法检测到它们。您可能需要在创建 /boot 分区(EXT4,>200MB,磁盘的起始位置)后重试。这可以通过 gParted 等工具执行。然后通过 [Boot Repair] 的 [Separate /boot partition:] 选项选择此分区。(https://help.ubuntu.com/community/BootPartition)

http://paste.ubuntu.com/1220468/- 这是完整的启动修复数据

grub 文件不在磁盘启动位置是否会引起这样的问题?

答案1

我已经通过删除文件/boot/grub/grubenv(其中包含以下行)解决了这个问题

set recordfail=1 )并重新发行

sudo update-grub

然后。

答案2

安装启动修复

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair

答案3

首先,您几乎从不想(或不需要)编辑 /etc/grub.d/ 中的任何文件,因为这样做可能会导致升级 Ubuntu 时出现问题(至少会出现 debconf 提示)。因此,我强烈建议您恢复在此目录中所做的任何更改。创建单独的 /boot/ 分区也无济于事(没有证据表明您的 BIOS 无法正确处理大型驱动器)。

Ubuntu 默认隐藏 grub 菜单,除非检测到其他操作系统,否则会覆盖 /etc/default/grub 中的 GRUB_TIMEOUT,这就是您默认看不到 grub 菜单的原因。这是 Ubuntu 特有的,上游 grub 不会这样做。

事实上你按住 Shift 键时看不到 grub 菜单,这表明 grub 根本没有按键,因此即使显示了 grub 菜单,您也无法与其交互。如果是这种情况,我们可以尝试一些方法来修复它,但如果发生这种情况,请不要感到惊讶。

要让 grub 显示菜单 10 秒(覆盖 Ubuntu 隐藏菜单的功能以及 /etc/default/grub 中的任何超时设置),请创建一个/boot/grub/custom.cfg内容为 的文件timeout=10。此解决方案安全、简单、易于恢复(删除文件),并且不会在升级时造成任何问题。

答案4

添加此行可以/etc/default/grub解决问题:

GRUB_RECORDFAIL_TIMEOUT=10

记得追上sudo update-grub去...

相关内容