我在 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-grub
和sudo 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
去...