MBR2GPT.EXE 可将磁盘从主启动记录 (MBR) 转换为 GUID 分区表 (GPT) 分区形式,无需修改或删除磁盘上的数据。 该工具旨在从 Windows 预安装环境 (Windows PE) 命令提示符运行,但也可以通过使用 /allowFullOS 选项从完整的 Windows 10 操作系统 (OS) 运行。

MBR2GPT.EXE 位于运行 Windows 10 版本 1703(又称为创意者更新)或更高版本的计算机的 Windows\System32 目录下。 该工具也在完整的操作系统环境和 Windows PE 中提供。 若要在使用配置管理器或 Microsoft 部署工具包 (MDT) 的部署任务序列中使用此工具,必须先使用 Windows ADK 1703 或更高版本更新 Windows PE 映像(winpe.wim、boot.wim)。

可以使用 MBR2GPT 执行以下操作:

脱机转换安装了较早版本的 Windows(例如 Windows 7、8 或 8.1)的系统磁盘不受正式支持。 建议的转换这些磁盘的方法是,先升级到 Windows 10 操作系统,再执行 MBR 到 GPT 的转换。

重要

磁盘转换为 GPT 分区形式后,必须重新配置固件才能以 UEFI 模式启动。

尝试转换磁盘之前,请确保你的设备支持 UEFI。

磁盘必备条件

对磁盘进行任何更改之前,MBR2GPT 会验证所选磁盘的布局和几何图形,以确保:

如果任意检查失败,将不会继续转换,并将返回错误。

语法

MBR2GPT/validate | convert [/disk:<diskNumber>] [/Logs:<logDirectory>] [/map:<source>=<destination>] [/allowFullOS]

选项描述

/validate指示 MBR2GPT.exe 仅执行磁盘验证步骤,并报告磁盘是否有资格进行转换。

/convert指示 MBR2GPT.exe 执行磁盘验证,如果通过所有验证测试,可继续进行转换。

/disk:<diskNumber>指定转换为 GPT 的磁盘编号。 如果不指定,则使用系统磁盘。 所用机制与 diskpart.exe 工具 SELECT DISK SYSTEM 命令使用的机制相。

/logs:<logDirectory>指定应写入 MBR2GPT.exe 日志的目录。 如果不指定,则使用 %windir%。 如果指定,目录必须已经存在,它不会自动创建或被覆盖。

/map:<source>=<destination>指定 MBR 和 GPT 之间的其他分区类型映射。 MBR 分区号以十进制表示法指定,而非十六进制。 GPT GUID 可以包含括号,例如:/map:42 = {af9b60a0-1431-4f62-bc68-3311714a69ad}。 如果需要多个映射,可指定 Multiple /map 选项。

/allowFullOS默认情况下会阻止 MBR2GPT.exe,除非从 Windows PE 运行。 在完整的 Windows 环境中运行时,该选项将覆盖此块,并启用磁盘转换。

注意:现有 MBR 系统分区正在使用并运行完整的 Windows 环境,因此无法重复使用。 在这种情况下,系统会通过压缩操作系统分区来创建新 ESP。

验证示例

在以下示例中,对磁盘 0 进行转换验证。 错误和警告记录在默认位置,%windir%

X:\>mbr2gpt /validate /disk:0
MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512
MBR2GPT: Validation completed successfully

转换示例

在以下示例中:

  1. 使用 DiskPart,在转换之前显示当前的磁盘分区布局 - MBR 磁盘(磁盘 0)上存在三个分区:系统保留分区、Windows 分区和恢复分区。 DVD-ROM 也作为卷 0 存在。
  2. 选择 OS 卷、列出分区、并显示 OS 分区的分区详细信息。 对应于可安装的文件系统 (IFS) 类型,MBR 分区类型为 07
  3. MBR2GPT 工具用于转换磁盘 0。
  4. DiskPart 工具显示磁盘 0 正在使用 GPT 格式。
  5. 显示新的磁盘布局 - GPT 磁盘上存在四个分区:三个与之前的分区相同,一个是新的 EFI 系统分区(卷 3)。
  6. 再次选择 OS 卷,详细信息显示它已被转换为 GPT 分区类型 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7(对应于 PARTITION_BASIC_DATA_GUID 类型)。
如 MBR2GPT 工具的输出中所述,你必须更改计算机固件,新的 EFI 系统分区才能正常启动。
 X:\>DiskPart
Microsoft DiskPart version 10.0.15048.0
Copyright (C) Microsoft Corporation.
On computer: MININT-K71F13N
DISKPART> list volume
 Volume ### Ltr Label Fs Type Size Status Info
 ---------- --- ----------- ----- ---------- ------- --------- --------
 Volume 0 F CENA_X64FRE UDF DVD-ROM 4027 MB Healthy
 Volume 1 C System Rese NTFS Partition 499 MB Healthy
 Volume 2 D Windows NTFS Partition 58 GB Healthy
 Volume 3 E Recovery NTFS Partition 612 MB Healthy Hidden
DISKPART> select volume 2
Volume 2 is the selected volume.
DISKPART> list partition
 Partition ### Type Size Offset
 ------------- ---------------- ------- -------
 Partition 1 Primary 499 MB 1024 KB
* Partition 2 Primary 58 GB 500 MB
 Partition 3 Recovery 612 MB 59 GB
DISKPART> detail partition
Partition 2
Type : 07
Hidden: No
Active: No
Offset in Bytes: 524288000
 Volume ### Ltr Label Fs Type Size Status Info
 ---------- --- ----------- ----- ---------- ------- --------- --------
* Volume 2 D Windows NTFS Partition 58 GB Healthy
DISKPART> exit
Leaving DiskPart...
X:\>mbr2gpt /convert /disk:0
MBR2GPT will now attempt to convert disk 0.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!
MBR2GPT: Attempting to convert disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Trying to shrink the system partition
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!
X:\>DiskPart
Microsoft DiskPart version 10.0.15048.0
Copyright (C) Microsoft Corporation.
On computer: MININT-K71F13N
DISKPART> list disk
 Disk ### Status Size Free Dyn Gpt
 -------- ------------- ------- ------- --- ---
 Disk 0 Online 60 GB 0 B *
DISKPART> select disk 0
Disk 0 is now the selected disk.
DISKPART> list volume
 Volume ### Ltr Label Fs Type Size Status Info
 ---------- --- ----------- ----- ---------- ------- --------- --------
 Volume 0 F CENA_X64FRE UDF DVD-ROM 4027 MB Healthy
 Volume 1 D Windows NTFS Partition 58 GB Healthy
 Volume 2 C System Rese NTFS Partition 499 MB Healthy Hidden
 Volume 3 FAT32 Partition 100 MB Healthy Hidden
 Volume 4 E Recovery NTFS Partition 612 MB Healthy Hidden
DISKPART> select volume 1
Volume 1 is the selected volume.
DISKPART> list partition
 Partition ### Type Size Offset
 ------------- ---------------- ------- -------
 Partition 1 Recovery 499 MB 1024 KB
* Partition 2 Primary 58 GB 500 MB
 Partition 4 System 100 MB 59 GB
 Partition 3 Recovery 612 MB 59 GB
DISKPART> detail partition
Partition 2
Type : ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Hidden : No
Required: No
Attrib : 0000000000000000
Offset in Bytes: 524288000
 Volume ### Ltr Label Fs Type Size Status Info
 ---------- --- ----------- ----- ---------- ------- --------- --------
* Volume 1 D Windows NTFS Partition 58 GB Healthy

磁盘转换工作流

后续步骤演示了 MBR 到 GPT 转换过程的高级阶段:

  1. 已执行磁盘验证。
  2. 如果不存在,请对磁盘进行重新分区,以创建 EFI 系统分区 (ESP)。
  3. 已将 UEFI 启动文件安装到 ESP。
  4. 已应用 GPT 元数据和布局信息。
  5. 已更新引导配置数据 (BCD) 存储。
  6. 已恢复驱动器号分配。

创建 EFI 系统分区

为使 windows 在转换后保持可启动,EFI 系统分区 (ESP) 必须到位。 MBR2GPT 使用以下规则创建 ESP:

  1. 如果满足以下要求,则重新使用现有 MBR 系统分区:

a. 它不是 OS 或 Windows 恢复环境分区。

b. 大小至少为 100 MB(或,4K 扇区磁盘为 260 MB)。

c. 大小小于或等于 1 GB。 这是一项安全措施,可确保它不是数据分区。

d. 转换不是从完整的操作系统执行。 在这种情况下,现有的 MBR 系统分区正在使用,不能重复使用。

2、如果不能重新使用现有的 MBR 系统分区,请通过压缩 OS 分区创建新 ESP。 此新分区的大小为 100 MB(或,4K 扇区磁盘为 260 MB)并格式化为 FAT32。

如果现有 MBR 系统分区无法供 ESP 重复使用,则其转换后不会再用于启动过程。 其他分区不会修改。

重要

如果现有的 MBR 系统分区没有重复用于 ESP,说明它可能被分配了驱动器号。 如果你不希望使用这个小分区,则必须手动隐藏驱动器号。

分区类型映射和分区属性

由于 GPT 分区使用的类型 ID 集与 MBR 分区不同,因此,必须为转换后的磁盘上的每个分区分配一个新的类型 ID。 分区类型映射遵循以下规则:

  1. ESP 始终设置为分区类型 PARTITION_SYSTEM_GUID (c12a7328-f81f-11d2-ba4b-00a0c93ec93b)。
  2. 如果 MBR 分区类型与 /map 开关中指定的任一条目匹配,则使用指定的 GPT 分区类型 ID。
  3. 如果 MBR 分区的类型为 0x27,则将分区转换为 PARTITION_MSFT_RECOVERY_GUID (de94bba4-06d1-4d40-a16a-bfd50179d6ac) 类型的 GPT 分区。
  4. 所有其他 Windows 可识别的 MBR 分区转换为 PARTITION_BASIC_DATA_GUID (ebd0a0a2-b9e5-4433-87c0-68b6b72699c7) 类型的 GPT 分区。

除应用正确的分区类型外,PARTITION_MSFT_RECOVERY_GUID 类型的分区还具有以下 GPT 属性集:

有关分区类型的详细信息,请参阅:

保持驱动器号分配

转换工具将尝试重新映射注册表中包含的所有驱动器号分配信息,其对应于已转换磁盘的卷。 如果无法恢复分配驱动器号,控制台和在日志中将显示错误,以便你可以手动执行正确的驱动器号分配。 重要提示:此代码布局转换发生之后运行,因此无法在此阶段撤消操作。

转换工具将在布局转换之前和之后获取卷的唯一 ID 数据,并将此信息组织到查找表中。 然后,它会在 HKLM\SYSTEM\MountedDevices 中的所有条目中进行迭代,请为每个条目执行以下操作:

  1. 检查唯一 ID 是否对应于作为已转换磁盘的一部分的任意卷的任意唯一 ID。
  2. 如果找到,请将布局转换后获取的值设置为新的唯一 ID。
  3. 如果无法设置新的唯一 ID 且值名称以 \DosDevices 开头,请发布一条有关需要手动干预以正确还原驱动器号分配的控制台和日志警告。

疑难解答

该工具将在其输出中显示状态信息。 如果遇到任何错误,将取消验证和转换。 例如,如果一个或多个分区未正确转换,将显示这一信息,并且无法执行转换。 要查看有关遇到的任何错误的详细信息,请参阅关联的日志文件。

日志 通过 MBR2GPT 工具创建四个日志文件:

这些文件包含在磁盘验证和转换期间遇到的错误和警告。 这些文件中的信息有助于诊断工具的问题。 setupact.log

和 setuperr.log 文件将提供有关磁盘布局、进程的最详细信息和与磁盘验证和转换有关的其他信息。 注意:setupact*.log 文件与在 %Windir%\Panther 目录中找到的 Windows 安装程序文件不同。

Windows PE 中的所有这些日志文件的默认位置是 %windir%

你可以在 Windows PowerShell 提示符中键入以下命令来显示磁盘编号和分区类型。 示例输出如下所示:

 PS C:\> Get-Disk | ft -Auto
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition Style
------ ------------- ------------- ------------ ----------------- ---------- ---------------
0 MTFDDAK256MAM-1K1 13050928F47C Healthy Online 238.47 GB MBR
1 ST1000DM003-1ER162 Z4Y3GD8F Healthy Online 931.51 GB GPT

你还可以通过打开磁盘管理工具,右键单击磁盘编号,单击属性,然后单击选项卡查看磁盘的分区类型。请参见以下示例:

pe里mbr怎么转gpt(win10怎么将mbr硬盘转化为gpt)(1)

如果 Windows PowerShell 和磁盘管理不可用(例如,当你使用 Windows PE 时),你可以使用 DiskPart 工具在命令提示符中确定分区类型。 若要从命令行确定分区形式,请键入 diskpart,然后键入 list disk。 请参见以下示例:

X:\>DiskPart
Microsoft DiskPart version 10.0.15048.0
Copyright (C) Microsoft Corporation.
On computer: MININT-K71F13N
DISKPART> list disk
 Disk ### Status Size Free Dyn Gpt
 -------- ------------- ------- ------- --- ---
 Disk 0 Online 238 GB 0 B
 Disk 1 Online 931 GB 0 B *

在此示例中,磁盘 0 使用 MBR 分区形式进行格式化,磁盘 1 使用 GPT 进行格式化。