grub 和 BCD 可以同时工作吗?

grub 和 BCD 可以同时工作吗?

以下是我的设置。安装新 SSD 后,我有:

  • sdc1 上的原始 Windows 7(即将退役)
  • sdb2 上的 Windows 7 副本
  • sdb1 上的 Windows 系统分区
  • Ubuntu 12.04 在 sda 上,/boot 和 grub 在 sda1 上

Grub 是 sda 上的 MBR,并设置为从 BIOS 启动。我宁愿不改变这一点;grub 作为启动管理器更受欢迎。

我从 Ubuntu 运行update-grub,并且 grub 似乎配置正确,因为所有选项都可用:我可以启动 3 个 Windows 分区和 Ubuntu 中的任何一个。我还运行了修复工具,让 Windows 将两个安装都添加到 BCD。

目前,选择特定选项似乎没有效果;sdc1 上的旧版 Windows 始终会启动。我不明白是什么原因造成的,但我无法弄清楚是什么。grub 和 BCD 如何协同工作?我找不到有关此问题的任何文档。

我的想法是仅从 sdb1 启动 Windows,然后让 BCD 完成剩下的工作(在 sdb2 和 sdc1 之间显示一个启动菜单,但我似乎无法让 BCD 启动 sdb2),但这没有成功。

我的配置文件:

答案1

解决此问题的方法如下:

  • 断开所有其他硬盘的连接
  • 尝试启动计算机,出现神秘错误
  • 插入 Windows 磁盘,运行修复

我还没有尝试重新连接其他磁盘,但我确信 Windows 现在正在使用 SSD!

答案2

在 MBR 上,Windows 7 和 Linux 双启动非常清楚:

始终按启动顺序(在 BIOS 中设置)加载并执行来自第一个磁盘的 MBR。

此 MBR 可以来自 Linux,然后 GRUB 进行控制,或者 MBR 来自 Windows 7,然后启动管理器 (bootmgr) 进行控制。

Windows 中的启动配置数据 (BCD) 最终有几个启动项,如果是,bootmgr 会显示它们供用户选择。您可以在 Windows BCD 中为 Windows 7 和 Linux 设置启动项。

GRUB 配置数据存储在 grub.cfg 中 - 这里我们可以为 Linux 和 Windows 设置多个启动项。grub-install 实用程序会自动扫描并添加所有已安装操作系统(Linux 和 Windows)的条目,无需手动编辑配置。

要编辑 Windows BCD,您可以使用 bcdedit 系统实用程序或图形工具,例如可视化 BCD 编辑器。Visual BCD Editor 能够自动添加 Windows 安装的启动项。下一版本的工具还将自动添加 Linux 启动项。

相关内容