MBR2GPT.EXE

適用對象

  • Windows10

摘要

MBR2GPT.EXE 可將主開機記錄 (MBR) 磁碟轉換為 GUID 磁碟分割表格 (GPT) 磁碟分割樣式,而無須修改或刪除磁碟上的資料。 此工具在設計上是要從 Windows 預先安裝環境 (Windows PE) 命令提示字元執行,但也可以使用 /allowFullOS 選項,從完整的 Windows 10 作業系統 (OS) 執行。

MBR2GPT.EXE 在執行 Windows 10 版本 1703 (也稱為 Creators Update) 或更新版本的 Windows 10 電腦上位於 Windows\System32 目錄中。 完整 OS 環境和 Windows PE 都能使用此工具。 若要在部署工作順序中搭配 Configuration Manager 或 Microsoft Deployment Toolkit (MDT) 使用這項工具,您必須先使用 Windows ADK 1703 或更新版本來更新 Windows PE 映像 (winpe.wim、boot.wim)。

如需 MBR2GPT 的詳細說明及示範,請觀看下列影片。

您可以使用 MBR2GPT 進行下列作業:

  • 將任何連接的 MBR 格式系統磁碟轉換為 GPT 磁碟分割格式。 您無法使用此工具將非系統磁碟從 MBR 轉換為 GPT。
  • 在保護已暫止之時,轉換具有 BitLocker 加密磁碟區的 MBR 磁碟。 若要在轉換後繼續使用 BitLocker,您將需要刪除現有的保護裝置再重新建立。
  • 轉換已安裝舊版 Windows 10 (例如版本 1507、1511 和 1607) 的作業系統磁碟。 不過,在開機進入 Windows 10 (版本 1703) 或更新版本時您必須執行此工具,並執行離線轉換。
  • 如果您的工作順序使用 Windows PE 版本 1703 或更新版本,使用 Configuration Manager 或 MDT 將作業系統磁碟從 MBR 轉換成 GPT。

未正式支援離線轉換已安裝舊版 Windows 的系統磁碟 (例如 Windows 7、8 或 8.1)。 轉換這些磁碟的建議方法是先將這些作業系統升級到 Windows 10,然後再執行 MBR 到 GPT 轉換。

重要

磁碟已轉換成 GPT 磁碟分割樣式後,必須將韌體重新設定為在 UEFI 模式中開機。
嘗試轉換磁碟前,請先確認您的裝置支援 UEFI。

磁碟先決條件

對磁碟進行任何變更之前,MBR2GPT 會先驗證已選取磁碟的配置和幾何,以確定︰

  • 磁碟目前正在使用 MBR
  • 磁碟分割未占用的空間仍足以用來存放主要和次要 GPT︰
    • 磁碟前端有 16KB + 2 個磁區
    • 磁碟結尾有 16 KB + 1 個磁區
  • MBR 磁碟分割表格最多有 3 個主要磁碟分割
  • 其中一個磁碟分割設定為作用中,並且是系統磁碟分割
  • 磁碟沒有任何延伸/邏輯磁碟分割
  • 系統磁碟分割上的 BCD 存放區包含指向 OS 磁碟分割的預設 OS 項目
  • 可針對獲指派磁碟機代號的每個磁碟區,擷取磁碟區識別碼
  • 磁碟上的所有磁碟分割都是可由 Windows 識別的 MBR 類型,或具有使用 /map 命令列選項指定的對應

如果上述任一檢查失敗,將不會繼續執行轉換,並會傳回錯誤。

語法

MBR2GPT/validate | convert [/disk:<diskNumber>] [/Logs:<logDirectory>] [/map:<源>=<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}。 若需要多個對應,可指定多個 /map 選項。
/allowFullOS 依預設,除非 MBR2GPT.exe 是從 Windows PE 執行,否則會封鎖 MBR2GPT.exe。 此選項會覆寫這個封鎖動作,並啟用在完整 Windows 環境中執行時的磁碟轉換。
注意:由於執行完整 Windows 環境時,現有 MBR 系統磁碟分割正在使用中,因此無法重複使用它。 在這種情況下,會透過壓縮 OS 磁碟分割來建立新的 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 磁碟分割的磁碟分割詳細資料。 MBR 磁碟分割類型07,對應至可安裝檔案系統 (IFS) 類型。
  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),則會重新分割磁碟以建立 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. 轉換不是從完整 OS 進行。 在這種情況下,現有 MBR 系統磁碟分割正在使用中,無法轉做其他用途。
  2. 如果無法重複使用現有的 MBR 系統磁碟分割,則會透過壓縮 OS 磁碟分割來建立新的 ESP。 這個新的磁碟分割大小為 100 MB (若是 4K 磁區大小磁碟則為 260 MB) 並格式化為 FAT32。

如果現有的 MBR 系統磁碟分割不重複使用於 ESP,則轉換後也不再由開機處理程序使用。 其他磁碟分割未經過修改。

重要

如果 ESP 無法重複使用現有 MBR 系統磁碟分割,則可能會獲指派磁碟機代號。 如果您不想要使用這個小的磁碟分割區,就必須手動隱藏磁碟機代號。

磁碟分割類型對應和磁碟分割屬性

由於 GPT 磁碟分割使用一組不同的類型識別碼,所以轉換後磁碟上的每個磁碟分割都必須指派新的類型識別碼。 磁碟分割類型對應遵循這些規則︰

  1. ESP 永遠設定為 PARTITION_SYSTEM_GUID (c12a7328-f81f-11d2-ba4b-00a0c93ec93b) 分割類型。
  2. 如果 MBR 磁碟分割類型符合 /map 參數中指定的其中一個項目,則使用指定的 GPT 磁碟分割類型識別碼。
  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)

如需磁碟分割類型的詳細資訊,請參閱:

保留磁碟機代號指派

轉換工具會嘗試針對相對應於轉換後磁碟之磁碟區的登錄,將其中包含的所有磁碟機代號指派資訊重新對應。 若無法還原磁碟機代號指派,會在主控台與記錄檔中顯示錯誤,讓您可以手動執行正確的磁碟機代號指派。 重要︰此程式碼是在進行配置轉換之後執行,因此在這個階段無法復原作業。

轉換工具會取得配置轉換之前和之後的磁碟區唯一識別碼資料,將此資訊組成查閱資料表。 接著會逐逐一查看 HKLM\SYSTEM\MountedDevices 中的所有項目,並為每個項目執行下列動作︰

  1. 檢查唯一識別碼是否對應至轉換後磁碟之磁碟區的任何一個唯一識別碼。
  2. 如果找到相符項目,將該值設定為配置轉換後取得的新的唯一識別碼。
  3. 若無法設定新的唯一識別碼且該值名稱開頭為 \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 已成功完成轉換。
sr-1 轉換被使用者取消。
pplx-2 因為內部錯誤,轉換失敗。
3 因為初始化錯誤,轉換失敗。
4 因為不正確的命令列參數,轉換失敗。
500 因為讀取選定磁碟的幾何和配置發生錯誤,轉換失敗。
6 因為磁碟上有一或多個磁碟區已加密,轉換失敗。
utf-7 因為選定磁碟的幾何和配置不符合需求,轉換失敗。
因為在建立 EFI 系統磁碟分割時發生錯誤,轉換失敗。
9 因為在安裝開機檔案時發生錯誤,轉換失敗。
套用 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 來格式化。

相關主題

Windows10 企業版系統需求
Windows10 規格
Windows10 IT 專業人員論壇