添加 MBR 硬盘后,Windows(在 GPT 磁盘上使用 UEFI 启动)将不再启动

添加 MBR 硬盘后,Windows(在 GPT 磁盘上使用 UEFI 启动)将不再启动

我最近使用 UEFI 启动和 GPT 在新的 SSD 上安装了 Windows 7 64 位。系统运行良好。将我的旧系统硬盘添加到系统(使用 MBR)后,Windows 将无法再正确启动:从 SSD 启动时,会出现正常启动屏幕,Windows 告诉我它正在加载文件。然后启动屏幕消失,我进入 EFI shell,无法启动。当我拔下旧硬盘时,Windows 再次启动,没有任何问题。

我是否可以以某种方式使用此配置进行启动,而无需先格式化我的旧硬盘?

我有一块 MSI Z77-G65A 主板。它配置为 UEFI 启动,从 SSD 启动。两个驱动器都设置为独立 HD(没有意外激活的 RAID)。SSD 连接到 SATA-6G 端口,旧驱动器连接到 SATA-3G 端口。

答案1

删除磁盘签名解决了这个问题。可以使用以下命令完成此操作

dd if=/dev/zero of=/dev/sdb bs=1 count=4 seek=440 conv=notrunc

在具有 root 权限的 Linux shell 中。

背景:
从 Windows 2000 开始,Microsoft 将一个 4 字节值(磁盘签名)写入每个磁盘的 MBR,以便识别每个磁盘。当两个磁盘具有相同的标识符时,就会出现问题。上述命令用零替换此签名,从而提示 Windows 分配新的唯一值。

请注意,在覆盖磁盘签名之前,我还尝试用零替换引导加载程序(MBR 中的字节 0-439)。 仅凭这一点,这并不能解决我的问题。

编辑:此解决方案仅解决了一次启动问题。尝试第二次启动时,同样的问题再次出现。通过再次覆盖磁盘签名,我能够启动,但同样只能启动一次。
从上面提供的背景来看,似乎 Windows 选择了不合适的磁盘签名,导致问题再次出现……

编辑2:看来,在 UEFI 模式下启动时,Windows 7 64 位无法正确处理具有 MBR 的磁盘上的扩展分区。此错误解释如下:

hotfix-1 hotfix-2

显然扩展分区被错误地识别为 UEFI 分区。这两个修补程序应该可以解决问题,但它们必须已集成到安装介质中。

答案2

我遇到了类似的问题。我使用 Windows 磁盘管理器向我的第二个磁盘驱动器添加了一个额外的主分区和一个扩展分区 - 总共 4 个分区。之后我无法再启动 Windows,并且所有修复选项都不起作用。

一种解决方法是在 BIOS 中禁用第二个磁盘驱动器。

我的解决方案是使用从紧急修复磁盘运行的 diskpart 命令将第二个磁盘驱动器从 MBR 转换为 GPT。回想起来,当我安装 Windows 时,我只格式化了第一个磁盘驱动器(SSD),该驱动器必须默认为 GPT。我使用 Windows 磁盘管理器格式化了第二个驱动器,该软件必须默认为 MBR。

我很高兴找到了这篇文章,因为它指出问题出在软件上,而不是我的两个磁盘驱动器或主板上。

相关内容