如何在不重新安装的情况下将 Windows 11 从 MBR 启动迁移到 GPT?

如何在不重新安装的情况下将 Windows 11 从 MBR 启动迁移到 GPT?

一开始,我想自己做,但是我找到的任何指南都行不通。起初这只是一个小问题,我所要做的就是在系统磁盘上创建一个 efi 分区,但在此过程中,我意识到我无法在 mbr 磁盘上执行此操作。因此,我意识到我需要在安装 Windows 的磁盘上将 mbr 更改为 gpt,但 mbr2gpt 说磁盘布局验证失败(所以我不知道转换将如何进行(可能不会进行))。我有一个驱动器,签名为系统一,但它是我最旧的硬盘(我认为这是我在这里的罪魁祸首(我应该在安装操作系统时断开它))。所以我可以将所有驱动器转换为 gpt(包括操作系统一)吗(磁盘 0 - 是系统分区所在的硬盘(我猜)磁盘 3 是 m2,即操作系统所在的位置)也许我可以以某种方式将系统分区移动到磁盘 3,但我不确定这会有什么不同。

编辑:mbr2gpt.exe 的 setuperr 日志错误“ValidateLayout:错误的启动分区数,预期为 1,但实际为 0。磁盘 3 的磁盘布局验证失败”

磁盘管理截图:

磁盘管理

答案1

看起来您使用的是旧式安装(即 Windows XP 及更早版本使用的安装),其中单个分区包含引导加载程序和操作系统。这在 mbr2gpt 中根本行不通,因为它需要已经具有包含 Bootmgr 的“Microsoft 保留分区”,以便将其转换为 EFI 系统分区。

如果时间充裕,我会使用 Diskpart/Diskmgmt 将 C: 卷缩小约 500 MB,然后使用 Linux GParted 将其移至右侧(在开头创建一个间隙)——移动 1 TB 是比较慢的部分——然后在那里创建一个新的“Microsoft 保留分区”(可以使用 Diskpart 完成,有官方 Microsoft 说明)并使用“bcdboot”填充它。这将为您留下一个 mbr2gpt 可能会接受的标准分区设置。

然而,在 HDD 上移动 1 TB 既慢又有风险,因此你可以创建 Microsoft 保留分区在最后磁盘。EFI 不会介意这一点(而且由于它完全在 2TB 限制之内,BIOS 也不会介意)。不过,我不确定 mbr2gpt 是否能接受这一点,但值得一试 - 并且可以在 Windows 中完成所有操作:

  1. 为了以防万一,请创建一个 Windows 安装 USB 棒,或者可能还有一个 Linux 实时 USB 棒。
  2. 将 C: 缩小 500 MB 左右。
  3. 创建一个新的“主”分区。格式化为 NTFS。
  4. 运行bcdboot c:\windows /s X:,其中 X 是该分区的新驱动器号。这将在那里安装 Bootmgr。
  5. 如果 bcdboot 成功,则将新分区设置为“活动”(右键单击)。这会告诉 MBR 实际在那里查找 Bootmgr。
  6. 重新启动以查看是否有效。如果可以启动,则对其进行 mbr2gpt。如果无法启动,则将原始 C: 设置为“活动”(例如从活动 USB)将返回到原始状态。实际上,只需执行 mbr2gpt 即可,无需重新启动。

(旁注:“Microsoft 保留分区”在 MBR 和 GPT 中含义不同。在前者中,它大致相当于 EFI 系统分区;在后者中,它是一个 ~16MB 的空间填充分区,什么也不做。)

如果 mbr2gpt 仍然拒绝,一种替代方法是使用“gdisk”工具仅进行分区表的转换(它主要是 Linux 工具,但我相信它也有 Windows 版本),然后使用 Windows 的 bcdboot.exe 来构建一个新的 EFI 系统分区。

这需要您手边有一个 Windows 安装 USB 记忆棒。

  1. 在物理磁盘设备上运行gdisk。它将自动进行转换;只需使用w保存并退出即可。
  2. 此后,磁盘将变为 GPT,但仍具有 BIOS 样式的 Bootmgr,因此无法再在 BIOS 或 EFI 中启动。相反,启动 Windows USB 棒并按 Shift-F10 打开控制台。
  3. 使用 Diskpart 查找操作系统分区和新创建分区的驱动器号。(从 USB 启动时,C:分区不一定是 C:。)
  4. 按照上面所述使用 bcdboot,但带有/f UEFI选项。

相关内容