Centos 7 和 Windows 10 双引导 Grub 不保存最后的选择

Centos 7 和 Windows 10 双引导 Grub 不保存最后的选择

我有 CentOS 7 和 Win10 双启动系统。我的安装完全是普通的(先是 CentOS,然后是 Win10),一切顺利。一切都很好,除了 grub 似乎没有保存我从引导加载菜单中的“最后”选择。

我翻遍了所有的 grub 配置文件(例如/boot/efi/EFI/centos/grub.cfg),所有代码似乎都在记录最后的选择。

我的/etc/default/grub节目:

GRUB_TIMEOUT=5
...
GRUB_DEFAULT=saved
...
GRUB_SAVEDEFAULT=true

有什么明显的我遗漏或需要做的事情来实现这一点吗?

/etc/efi/EFI/centos/grubenv从来没有记录过最新的选择。它总是有:

saved_entry=CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
##########[...snip...padding to 1k]

我无法从 Windows 启动中看到该文件,但我确实通过“救援 Centos 条目”进行了测试。

我手动将值设置grubenvWindows Boot Manager (on /dev/sda2)(Windows 条目),效果很好。但是,重新启动 CentOS 无法更改它。

看来我缺少一些东西来启用这种“保存最后的选择”行为。有任何想法吗?

答案1

或者,您可以简单地为要设置为默认值的操作系统指定 GRUB_DEFAULT 编号。转到位于以下位置的 grub 配置文件/boot/grub2/grub.cfg并搜索关键字菜单项。这将在启动屏幕上显示操作系统列表。

假设首先是 CentOS 条目,然后是 Windows 条目,如果您希望默认操作系统作为 CentOS 启动,只需编辑 GRUB_DEFAULT 的值/etc/默认/grub如下

GRUB_DEFAULT=0

如果您希望 Windows 10 默认启动,请设置

GRUB_DEFAULT=1

保存并重新启动。您应该将所选操作系统设为默认操作系统。

答案2

/etc/default/grub文件用于生成grub.cfg实际控制 grub 行为的最终文件。编辑 grub 文件后,您必须运行

sudo update-grub

生成一个新的/boot/grub/grub.cfg(通常位置)。

答案3

意识到这个问题已经快一年了,我可以确认以下工作:

$ su
Password:
# vim /boot/grub/grub.conf

在该文件中,我有以下内容:

default=saved
timeout=5
...
title CentOS (2.6.32-642.13.1.el6.x86_64)
    root ...
    ...
    savedefault
    initrd ...
title CentOS (<old kernel>...)
    ...
    savedefault
title Windows (10)
    ...
    savedefault

我认为您可能在每个启动项中缺少savedefault关键字(?) - 尽管看起来您可能在 CentOS 7 上,而我在 CentOS 6 上。IIRC,CentOS 6 使用 GRUB(GRUB v1.97),而CentOS 7 使用 GRUB2 (GRUB 2.01)。

我确信未来的用户/搜索者会感激任何能够确认/否认这解决了他们的问题的人。

答案4

根据这个错误问题在于 grubenv 的链接指向 /boot/grub2/grubenv,但 /boot 未安装在 grub 菜单环境中。上面的错误来自 fedora,但我认为 centos 也是如此。我在运行 CentOS 7 和 grub2 时遇到此问题。

系统启动得很好,但只有在按下一个键后,才会出现 grubenv 不存在的消息。上面的错误也包括修复。符号链接

/boot/grub2/grubenv -> ../efi/EFI/centos/grubenv

应该修复这个问题。

  • 编辑 * 确认这解决了运行 linux 内核 4.20.0.1 的 CentOS 7.1 上的问题。

如何?

sudo rm /boot/grub2/grubenv
sudo ln -s ../efi/EFI/centos/grubenv /boot/grub2/grubenv

如果不需要 grub2-efi,请确保也将其删除,因为它似乎会导致此问题。

sudo yum remove grub2-efi

相关内容