MBR2GPT.EXE

适用于

  • Windows10

摘要

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

MBR2GPT.EXE 位于运行 Windows 10 版本 1703 或更高版本的 Windows 10 计算机的 Windows\System32 目录下。

你可以使用 MBR2GPT 执行下列任务:

  • [在 Windows PE 环境内]:将任意连接的 MBR 格式化系统磁盘转换为 GPT 分区格式。
  • [从当前运行的操作系统内]:将任意连接的 MBR 格式化系统磁盘转换为 GPT 分区格式。

MBR2GPT 在 Windows 10 版本 1703(也称为 Windows 10 创意者更新)和更高版本中提供。 该工具也在完整的操作系统环境和 Windows PE 中提供。

你可以使用 MBR2GPT 转换带有 BitLocker 加密的卷的 MBR 磁盘,只要保护已挂起。 要在转换后恢复 BitLocker,需要删除现有保护程序并重新创建。

MBR2GPT 工具可以转换安装了较早版本的 Windows 10(例如版本 1507、1511 和 1607)的操作系统磁盘。 但是,你必须在启动到 Windows 10 版本 1703 或更高版本时运行该工具,并执行脱机转换。

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

重要

磁盘转换为 GPT 分区形式后,必须重新配置固件才能以 UEFI 模式启动。
尝试转换磁盘之前,请确保你的设备支持 UEFI。

语法

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 环境中运行时,该选项将覆盖此块,并启用磁盘转换。

示例

验证示例

在以下示例中,对磁盘 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. 已恢复驱动器号分配。

磁盘验证

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

  • 磁盘正在使用 MBR
  • 有足够的分区未占用空间可以存储主要和辅助 GPT:
    • 磁盘前部有 16 KB + 2 个扇区
    • 磁盘后部有 16 KB + 1 个扇区
  • MBR 分区表中最多有 3 个主分区
  • 其中一个分区被设置为活动,并作为系统分区
  • 磁盘没有任何扩展/逻辑分区。
  • 系统分区中的 BCD 存储包含一个指向 OS 分区的默认 OS 项
  • 可以为每个具有已分配驱动器号的卷检索卷 ID
  • 磁盘上的所有分区均为 Windows 可识别的 MBR 类型,或具有使用 /map 的命令行选项指定的映射

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

创建 EFI 系统分区

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

  1. 如果满足以下要求,则重新使用现有 MBR 系统分区:a. 它不是 OS 或 Windows 恢复环境分区 b. 大小至少为 100 MB(或,4K 扇区磁盘为 260 MB) c. 大小小于或等于 1 GB。 这是一项安全措施,可确保它不是数据分区。 d. 如果正在完整的 OS 中执行转换,则转换的磁盘不是系统磁盘。
  2. 如果不能重新使用现有的 MBR 系统分区,请通过压缩 OS 分区创建新 ESP。 此新分区的大小为 100 MB(或,4K 扇区磁盘为 260 MB)并格式化为 FAT32。

如果现有 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 属性集:

  • GPT_ATTRIBUTE_PLATFORM_REQUIRED (0x0000000000000001)
  • GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER (0x8000000000000000)

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

保持驱动器号分配

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

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

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

疑难解答

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

日志

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

  • diagerr.xml
  • diagwrn.xml
  • setupact.log
  • setuperr.log

这些文件包含在磁盘验证和转换期间遇到的错误和警告。 这些文件中的信息有助于诊断工具的问题。 setupact.log 和 setuperr.log 文件将提供有关磁盘布局、进程的最详细信息和与磁盘验证和转换有关的其他信息。 注意:setupact*.log 文件与在 %Windir%\Panther 目录中找到的 Windows 安装程序文件不同。

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

交互式帮助

要查看使用工具时的可用选项列表,请键入 mbr2gpt /?

显示下列文本:


C:\> mbr2gpt /?

Converts a disk from MBR to GPT partitioning without modifying or deleting data on the disk.

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

Where:

 /validate
         - Validates that the selected disk can be converted
           without performing the actual conversion.

 /convert
         - Validates that the selected disk can be converted
           and performs the actual conversion.

 /disk:<diskNumber>
         - Specifies the disk number of the disk to be processed.
           If not specified, the system disk is processed.

 /logs:<logDirectory>
         - Specifies the directory for logging. By default logs
           are created in the %windir% directory.

 /map:<source>=<destination>
         - Specifies the GPT partition type to be used for a
           given MBR partition type not recognized by Windows.
           Multiple /map switches are allowed.

 /allowFullOS
         - Allows the tool to be used from the full Windows
           environment. By default, this tool can only be used
           from the Windows Preinstallation Environment.

返回代码

MBR2GPT 具有以下关联的返回代码:

返回代码 描述
0 已成功完成转换。
1 用户已取消转换。
2 由于内部错误,转换失败。
3 由于初始化错误,转换失败。
4 由于无效的命令行参数,转换失败。
5 由于读取所选磁盘的几何图形和布局出现错误,转换失败。
6 由于磁盘上的一个或多个卷已加密,转换失败。
7 由于所选磁盘的几何图形和布局不符合要求,转换失败。
8 由于创建 EFI 系统分区时出现错误,转换失败。
9 由于安装启动文件时出现错误,转换失败。
10 由于应用 GPT 布局时发生错误,转换失败。
100 已成功转换为 GPT 布局,但某些引导配置数据条目无法还原。

确定分区类型

你可以在 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

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

卷

如果 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 进行格式化。

相关主题

Windows 10 企业版系统要求
Windows 10 规范
Windows 10 IT 专业人员论坛