MBR2GPT.EXE

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

MBR2GPT.EXE 位於執行 Windows\System32 Windows 之電腦的 目錄中。

完整 OS 環境和 Windows PE 都能使用此工具。

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

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

  • 將任何連接的 MBR 格式系統磁碟轉換為 GPT 磁碟分割格式。 您無法使用此工具將非系統磁碟從 MBR 轉換為 GPT。
  • 只要保護暫停,使用 BitLocker 加密磁碟區轉換 MBR 磁碟。 若要在轉換後繼續 BitLocker,您必須刪除現有的保護裝置並重新建立它們。
  • 使用 Microsoft Configuration Manager 或 Microsoft Deployment Toolkit (MDT) ,將操作系統磁碟從 MBR 轉換成 GPT。

不正式支援安裝舊版 Windows 的系統磁碟離機轉換,例如 Windows 7、8 或 8.1。 轉換這些磁碟的建議方法是將操作系統升級為目前支援的 Windows 版本,然後執行 MBR 到 GPT 轉換。

重要

磁碟已轉換成 GPT 磁碟分割樣式後,必須將韌體重新設定為在 UEFI 模式中開機。

嘗試轉換磁碟前,請先確認您的裝置支援 UEFI。

磁碟先決條件

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

  • 磁碟目前正在使用 MBR
  • 分割區未佔用足夠的空間來儲存主要和次要 GPT:
    • 磁碟前端有 16 KB + 2 個扇區
    • 磁碟結尾處有 16 KB + 1 個扇區
  • MBR 磁碟分區數據表中最多有三個主要分割區
  • 其中一個磁碟分割設定為作用中,並且是系統磁碟分割
  • 磁碟沒有任何擴充/邏輯分割區
  • 系統磁碟分割上的 BCD 存放區包含指向 OS 磁碟分割的預設 OS 項目
  • 您可以針對已指派驅動器號的每個磁碟區擷取磁碟區標識碼
  • 磁碟上的所有磁碟分區都是 Windows 所辨識的 MBR 類型,或具有使用命令列選項指定的 /map 對應

如果其中任何一項檢查失敗,轉換就不會繼續,而且會傳回錯誤。

語法

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

選項

選項 描述
/validate 指示 MBR2GPT.exe 只執行磁碟驗證步驟,並報告磁碟是否符合轉換資格。
/轉換 指示 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 執行,並封鎖在完整 Windows 中執行。 此選項會覆寫這個封鎖動作,並啟用在完整 Windows 環境中執行時的磁碟轉換。
注意:由於現有的 MBR 系統分割區在執行完整 Windows 環境時正在使用中,因此無法重複使用。 在此情況下,會藉由壓縮 OS 磁碟分區來建立新的 EFI 系統分割區。

範例

驗證範例

在下列範例中,將驗證磁碟 0 是否可供轉換。 錯誤和警告會記錄到的 %windir%預設位置。

X:\> mbr2gpt.exe /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 磁碟區。 詳細數據會顯示 OS 磁碟區已轉換成對應至PARTITION_BASIC_DATA_GUID類型的 GPT 磁碟分區類型ebd0a0a2-b9e5-4433-87c0-68b6b72699c7

如MBR2GPT工具的輸出中所述,您必須變更計算機韌體,才能讓新的 EFI 系統分割區正確開機。


展開以顯示MBR2GPT範例
X:\>DiskPart.exe

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 系統磁碟分區。
  3. UEFI 開機檔案會安裝到 EFI 系統分割區。
  4. 套用 GPT 元數據和配置資訊。
  5. 更新開機設定資料 (BCD) 存放區。
  6. 還原磁碟機代號。

建立 EFI 系統磁碟分割

若要讓 Windows 在轉換之後保持可開機狀態,必須備妥 EFI 系統分割區。 MBR2GPT使用下列規則建立 EFI 系統分割區:

  1. 如果現有 MBR 系統磁碟分割符合下列需求,則會重複使用︰

    • 它也不是OS或 Windows 復原環境磁碟分區。
    • 大小為 4K 扇區大小的磁碟至少為 100 MB (或 260 MB) 。
    • 大小小於或等於 1 GB。 此大小是安全預防措施,可確保它不是數據分割。
    • 不會從完整OS執行轉換。 在此情況下,現有的 MBR 系統分割區正在使用中,無法重新規劃。
  2. 如果無法重複使用現有的 MBR 系統分割區,則會藉由壓縮 OS 磁碟分區來建立新的 EFI 系統分割區。 這個新的磁碟分區大小為 100 MB (或 4K 扇區大小磁碟的大小為 260 MB) 且格式為 FAT32。

如果現有的 MBR 系統分割區未重複用於 EFI 系統分割區,則在轉換之後,開機程式不會再使用它。 不會修改其他分割區。

重要

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

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

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

  1. EFI 系統分割區一律設定為數據分割類型 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.logsetuperr.log 檔案具有磁碟配置、進程及其他與磁碟驗證和轉換相關信息的最詳細資訊。

注意

setupact.log* 檔案與目錄中%Windir%\Panther找到的 Windows 安裝程式檔案不同。

Windows PE 中所有記錄檔的預設位置是在 %windir%

互動式說明

若要檢視使用工具時可用的選項清單,請在提升許可權的命令提示字元中輸入下列命令:

mbr2gpt.exe /?

將會顯示下列文字:

C:\> mbr2gpt.exe /?

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
  • 使用磁碟管理工具
  • 使用 DiskPart 工具

Windows PowerShell

您可以在 Windows PowerShell 提示字元輸入下列命令,以顯示磁碟編號和磁碟分區類型:

Get-Disk | ft -Auto

範例輸出:

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

磁碟管理工具

您可以使用磁碟管理工具來檢視磁碟的磁碟分區類型:

  1. 以滑鼠右鍵按兩下 [開始] 功能表,然後選取 [ 磁碟管理]。 或者,以滑鼠右鍵按兩下 [開始] 功能表,然後選取 [ 執行]。 在出現的 [ 執行 ] 對話框中,輸入 diskmgmt.msc ,然後選取 [ 確定]

  2. 顯示的 [ 磁碟管理] 視窗中:

    1. 在底部窗格中,選取感興趣的磁碟號碼。

    2. 選取 [ 動作] 功能表,然後選取 [ 所有工作 > 屬性]。 或者,以滑鼠右鍵按兩下感興趣的磁碟號碼,然後選取 [ 屬性]

    3. 在磁碟出現的 [ 屬性 ] 對話框中,選取 [ 磁碟區] 索引標籤

    4. 在 [ 磁碟 區] 索引標籤下,數據分割類型會顯示在 [ 數據分割樣式: ] 旁邊。

DiskPart 工具

您可以使用 DiskPart 工具來判斷資料分割類型。 DiskPart 工具在磁碟管理工具和 PowerShell 無法使用的情況下很有用,例如在 WinPE 中。 未載入 PowerShell 選擇性元件時,WinPE 中無法使用 PowerShell。 若要使用 DiskPart 工具來判斷資料分割類型:

  1. 開啟提升權限的命令提示字元。

  2. 在開啟的提升許可權命令提示字元中,輸入下列命令:

    DiskPart.exe
    
  3. DISKPART> 提示字元會顯示在命令提示字元視窗中。 在 DISKPART> 提示字元中,輸入下列命令:

    list disk
    
  4. 數據分割類型會顯示在 Gpt 資料行中。 如果數據分割是 GPT,數據行中會顯示星號 (*) 。 如果數據分割是 MBR,則數據行為空白。

下列顯示 DiskPart 工具的範例輸出,其中顯示兩個磁碟的磁碟分區類型:

X:\>DiskPart.exe

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 來格式化。