根据如何在不重新安装的情况下将 Windows 10 从 BIOS/MBR 启动迁移到 UEFI/GPT?我可以使用 Windows 10 CU 提供的 MBR2GPT 工具将系统磁盘转换为 GPT,而无需重新安装。我目前也在使用 Windows 10 Creators 更新。
我尝试了一下,但收到“未找到操作系统分区”的错误。
这是完整的日志:
2017-06-14 00:26:34, Info MBR2GPT was explicitly asked to run in full OS mode.
2017-06-14 00:26:34, Info MBR2GPT: System disk number is 0
2017-06-14 00:26:34, Info MBR2GPT: Attempting to validate disk 0
2017-06-14 00:26:34, Info MBR2GPT: Retrieving layout of disk
2017-06-14 00:26:34, Info MBR2GPT: Initial partition information
2017-06-14 00:26:34, Info ===========================================================
2017-06-14 00:26:34, Info Partition layout for disk: 0
2017-06-14 00:26:34, Info Partition style : MBR
2017-06-14 00:26:34, Info MBR signature: 1967564465
2017-06-14 00:26:34, Info Number of partitions : 2
===================PARTITION===============================
Number: 1
Type: 7
Boot: Yes
Recognized: Yes
Style: 0
Offset: 1048576
Length: 499621322752
Volume: \\?\Volume{7546a6b1-0000-0000-0000-100000000000}\
Drive: C:\
NT Path: \Device\HardDisk0\Partition1
===================PARTITION===============================
Number: 2
Type: 7
Boot: No
Recognized: Yes
Style: 0
Offset: 499628171264
Length: 477078016
Volume: \\?\Volume{7546a6b1-0000-0000-00e0-285474000000}\
Drive: None
NT Path: \Device\HardDisk0\Partition2
===========================================================
ESP partition size will be 104857600
MBR2GPT: Validating layout, disk sector size is: 512 bytes
Opening store. Flags: 0x0
Store path: "\??\GLOBALROOT\device\harddisk0\partition1\Boot\BCD"
Loaded hive at BCD00000000
Opening object {9dea862c-5cdd-4e70-acc1-f32b344d4795}
FindOSPartitions: Default boot entry: {ECE3CBB0-2B25-11E7-9886-AC950A4FD9A0}
Opening object {ece3cbb0-2b25-11e7-9886-ac950a4fd9a0}
VERBOSE: Device path: \Device\HarddiskVolume1
VERBOSE: Dos path: \\?\GLOBALROOT\Device\HarddiskVolume1
FindOSPartitions: Volume name for the default boot entry: \\?\Volume{7546a6b1-0000-0000-0000-100000000000}\
Opening object {1eb788fe-2b26-11e7-9886-ac950a4fd9a0}
GetOSDeviceVolume: Cannot get NT path for entry.[gle=0x000000ea]
FindOSPartitions: Cannot get volume name for the recovery boot entry. Error: 0x000000EA[gle=0x000000ea]
Cannot find OS partition(s) for disk 0[gle=0x000000ea]
我不清楚发生了什么事。
我知道我的系统最初有另一个 SSD,我使用三星工具将操作系统从该 SSD 移至当前 SSD,后来将其用于带有 Chameleon (UEFI) 引导加载程序的 Hackintosh。现在该磁盘不见了。
尽管如此,Windows 10 仍可正常启动(当然,没有安全启动)。为什么找不到操作系统分区?
重要信息
自从提出问题以来,我就格式化并从头开始。我无法测试任何答案,因此不会接受任何答案。任何有能力的人都应该利用这个机会对最终发布的任何答案投赞成或反对票。
答案1
为了澄清@merle 的非常有用的答案 - 我必须运行下面的命令将我的工作 EFI 启动数据复制到 mbr2gpt 可以找到它的地方。
bcdboot c:\Windows /f bios /s c:
完成此操作后,您应该能够成功运行 mbr2gpt。
注意:我的系统已在 UEFI 模式下启动到 MBR 磁盘,这就是为什么典型位置没有 BCD 数据的原因。这应该可以解决该问题并允许 mbr2gpt 执行其操作。
答案2
我尝试了上述所有解决方案,但对我都不起作用。不过,我找到了问题的主要原因并解决了它。当我运行 diskpart 并查看分区的详细信息时,我发现只有系统保留分区标记为“活动”,而“C”分区没有,所以我只是将其设置为活动,然后运行 mbr2gpt,它就起作用了。
- 运行 CMD。
- 输入“diskpart”(不带引号)。
- 输入“list disk”。
- 键入“select disk #”并将#替换为您想要的磁盘号。
- 输入“list partion”。
- 键入“select partion #”将#替换为系统分区的编号,而不是系统保留的编号。
- 输入“详细分区”。
- 您将看到分区详细信息。如果您在“Active”前面看到“No”,则输入“Active”。
您可以出发了!
答案3
就我的情况而言,我正在启动 UEFI/MBR,并且我怀疑情况可能也是如此,因为您使用的是 Chameleon UEFI 引导加载程序。
MBR2GPT.exe 假定 BIOS 启动并检查 BIOS BCD 存储
[系统分区]\启动\BCD
而不是找出实际的系统存储所在的位置。我的 BIOS BCD 有无效条目,因此 MBR2GPT 正确地抱怨它找不到不存在的恢复卷。我用 EFI BCD 替换了 BIOS BCD
[系统分区]\EFI\Microsoft\Boot
并且能够运行MBR2GPT。
C:\Windows\system32>MBR2GPT.EXE /convert /allowfullos
MBR2GPT will now attempt to convert the default book disk.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!
MBR2GPT: Attempting to convert disk 3
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Trying to shrink the OS partition
MBR2GPT: Creating the EFI system partition
MBR2GPT: Installing the new boot files
MBR2GPT: Performing the layout conversion
MBR2GPT: Migrating default boot entry
MBR2GPT: Adding recovery boot entry
MBR2GPT: Fixing drive letter mapping
MBR2GPT: Conversion completed successfully
MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
答案4
在尝试了其他建议并失败后,我找到了将 Windows 从 BIOS/MBR 启动迁移到 UEFI 启动的问题的替代解决方案:
- 制定灾难恢复计划。也许克隆驱动器。
- 启动 Ubuntu Live,并使用以下方法备份操作系统分区ntfs克隆。
- 使用 UEFI 启动来安装全新 Windows。
- 启动到 Ubuntu Live,并使用 ntfsclone 恢复操作系统分区。
这是我的经验(YMMV):
- 约 100 分钟将约 550GB 的 OS 分区备份至连接 USB 的 HDD
- 约 25 分钟从 USB 拇指驱动器安装 Windows
- 恢复约需 120 分钟
以下是 ntfsclone 的示例用法:
ntfsclone --save-image --output /mnt/storage/windows.ntfsclone /dev/sda2
ntfsclone --restore-image --overwrite /dev/sda3 /mnt/storage/windows.ntfsclone