結論

MBR と GPT は「ディスクのどこに、どんなパーティションがあるか」を書き留める方式(パーティションテーブル)の名前です。MBR は 2TB までの 4 区画、BIOS 起動向け。GPT は 2TB 超・128 区画・予備の表つきで、UEFI 起動の Windows 11 や新しい PC はこちらです。迷ったら GPT、確認は Windows なら diskpart の list disk、Linux なら fdisk -l の Disklabel type です。

この記事でわかること

  • MBR と GPT の違いの一覧と、2TB の壁・4 パーティション制限の根拠(バイト単位)
  • Windows(ディスクの管理・diskpart・PowerShell)と Linux での確認方法
  • ループデバイスで両方を実際に作り、壊し、変換した fdisk・gdisk・parted の原文

2026年10月29日更新|Ubuntu 24.04・fdisk 2.39.3・gdisk 1.0.10・parted 3.6 で実行確認

ディスクはそのままでは「大きな 1 枚の板」です。先頭に「どこからどこまでが C ドライブ、どこからが回復領域」という目次を書いて初めて OS が使えます。その目次の書き方が MBR と GPT の 2 通りで、PC のファームウェア(BIOS か UEFI か)とペアで決まります。

flowchart TD
    F{PC のファームウェア} -->|BIOS<br>レガシ| M[MBR<br>先頭 512 バイトに目次<br>2TB・4 区画まで]
    F -->|UEFI<br>Windows 11 の要件| G[GPT<br>先頭と末尾に目次<br>2TB 超・128 区画]
    M --> W[Windows の起動には<br>BIOS + MBR]
    G --> U[Windows の起動には<br>UEFI + GPT]

よく調べられることの答えを先にまとめます。

知りたいこと 答え 詳しい節
MBR と GPT の違い 容量 2TB/2TB 超、区画 4/128、予備の表なし/あり、BIOS/UEFI MBR と GPT の違い(一覧表)
MBR GPT どっち 新しく初期化するなら GPT。BIOS でしか起動できない PC だけ MBR どちらを選ぶか(判断表)
GPT の確認方法(Windows) diskpart の list disk、ディスクの管理の「パーティションのスタイル」、Get-Disk Windows で MBR か GPT か確認する方法
GPT の確認方法(Linux) fdisk -l の Disklabel type(dos か gpt) Linux で MBR か GPT か確認する方法
2TB の壁とは MBR は開始位置と長さが 32 ビット × 512 バイト = 2TiB 2TB の壁と 4 パーティションの根拠
Windows 11 は GPT が必要か 要件は「UEFI、セキュアブート対応」。UEFI で起動するディスクは GPT UEFI・BIOS との関係
MBR から GPT に変換 Windows は mbr2gpt(条件あり)か、消してから convert gpt。Linux は gdisk MBR から GPT への変換
変換で消える? ディスクの管理・diskpart・Initialize-Disk は消してから。mbr2gpt と gdisk は保持 変換時にやってはいけないこと

確認環境:Ubuntu 24.04.5 LTS の上で、イメージファイル(1GiB・64MiB・3TiB のスパースファイル)をループデバイス(/dev/loop0〜3)に割り当て、fdisk 2.39.3(util-linux)・gdisk/sgdisk 1.0.10・parted 3.6・lsblk・blkid・wipefs で MBR と GPT の作成・読み取り・破壊・修復・相互変換を行いました。ディスクの中身は od でバイト単位に確かめ、ファイルシステムは ext4 を作ってマウントし、変換の前後で同じファイルが読めることを確かめています。ホストの物理ディスクには触れていません。Windows の diskpart・ディスクの管理・PowerShell・mbr2gpt・Windows 11 の要件・GPT の FAQ は Microsoft Learn、GPT の構造は UEFI 仕様 2.10 第 5 章で確かめました。図は mermaid で描画を確かめています(確認日 2026年10月29日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「MBRとGPTの違い|確認方法・2TBの壁・変換の注意を実機で」

MBRとGPTの違い(一覧表)

この節では、MBR と GPT が何を指し、どこがどう違うのかが一覧で分かります。

MBR(Master Boot Record)はディスクの先頭 512 バイトにパーティションの目次を置く方式、GPT(GUID Partition Table)は UEFI の仕様で決められた、先頭と末尾の両方に目次を置く方式です。 どちらも「パーティションテーブル(パーティションスタイル)」と呼ばれ、ファイルシステム(NTFS・ext4)とは別の層の話です。

MBR GPT
正式名 Master Boot Record(fdisk では dos) GUID Partition Table
扱える大きさ 2TiB(2^32 セクター × 512 バイト ≒ 2.2TB) 2^64 セクター(Windows は 18EB、ファイルシステムは 256TB)
パーティション数 基本 4 つ(3 つ + 拡張の中に論理) 既定 128 個(仕様上はほぼ無制限)
目次の置き場所 先頭 1 セクターだけ 先頭(LBA 1〜33)と末尾に同じものを 2 組
壊れたときの検出 無い(末尾 55 AA の印だけ) CRC32 で検出し、予備から直せる
区画の識別 1 バイトの種類 ID(83・07 など) 種類 GUID + 固有 GUID + 36 文字の名前
起動との関係 BIOS(レガシ)起動 UEFI 起動。Windows 11 の要件は UEFI
Windows での表記 パーティションのスタイル:MBR パーティションのスタイル:GPT(GUID パーティション テーブル)

MBR が向くとき

BIOS でしか起動できない PC で起動ディスクにする

以前の機器(レコーダー・カーナビなど)が MBR しか読めない USB メモリー

2TB 以下で、区画が 4 つ以内

GPT が向くとき

UEFI で起動する PC(Windows 11 はこれ)

2TB を超えるディスク・5 つ以上の区画

目次の破損に備えたい(予備の表と CRC)

MBRとは(構造と、fdiskで作った実物)

この節では、MBR の中身がバイト単位でどうなっているか、4 つを超えるとどうなるかが分かります。

MBR はディスクの先頭 512 バイト(セクター 0)そのものです。 先頭 446 バイトが起動コード、続く 64 バイトが 16 バイト × 4 のパーティションの目次、最後の 2 バイトが「55 AA」という印です。目次が 4 つ分しか無いので、基本(プライマリ)パーティションは 4 つまでです。

1GiB のイメージに fdisk で 100MiB の基本パーティションを 4 つ作り、5 つ目を作ろうとした原文です。

$ fdisk /dev/loop0
Device does not contain a recognized partition table.
Created a new DOS (MBR) disklabel with disk identifier 0x6bb06b2b.
Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Created a new partition 4 of type 'Linux' and of size 100 MiB.
Command (m for help): n
To create more partitions, first replace a primary with an extended partition.

書き込んだあと、セクター 0 の 440 バイト目からを od で見たものです。16 バイトの目次が 4 行並び、最後に 55 AA があります。

$ od -A d -t x1 -j 440 -N 72 /dev/loop0
0000440 2b 6b b0 6b 00 00 00 20 21 00 83 df 13 0c 00 08
0000456 00 00 00 20 03 00 00 df 14 0c 83 9f 06 19 00 28
0000472 03 00 00 20 03 00 00 9f 07 19 83 5e 38 26 00 48
0000488 06 00 00 20 03 00 00 5e 39 26 83 1e 2b 33 00 68
0000504 09 00 00 20 03 00 55 aa
位置(バイト) 中身 上の原文で
440〜443 ディスク識別子(4 バイト) 2b 6b b0 6b → fdisk の 0x6bb06b2b
446〜461 1 つ目の目次(16 バイト) 種類 83(Linux)、開始 00 08 00 00 = 2048 セクター、長さ 00 20 03 00 = 204800 セクター
462〜509 2〜4 つ目の目次 同じ形が 3 つ
510〜511 ブートシグネチャ 55 aa

開始位置も長さも 4 バイト(32 ビット)です。これが次の節の「2TB の壁」の正体です。

5 つ以上にしたいとき:拡張パーティションと論理パーティション

4 つ目を「拡張(Extended、種類 05)」という入れ物にして、その中に論理パーティション(5 番以降)を作ります。3 つの基本 + 拡張 + 論理 3 つを作った結果です。

Device       Boot   Start     End Sectors  Size Id Type
/dev/loop0p1         2048  206847  204800  100M 83 Linux
/dev/loop0p2       206848  411647  204800  100M 83 Linux
/dev/loop0p3       411648  616447  204800  100M 83 Linux
/dev/loop0p4       616448 2097151 1480704  723M  5 Extended
/dev/loop0p5       618496  823295  204800  100M 83 Linux
/dev/loop0p6       825344 1030143  204800  100M 83 Linux
/dev/loop0p7      1032192 1236991  204800  100M 83 Linux

lsblk で見ると、拡張パーティション p4 の大きさは 512B と出ます。入れ物そのものは目次の連鎖(EBR)でしかなく、データを置く場所ではないためです。Windows では「拡張パーティション」の中の「論理ドライブ」として見えます。

GPTとは(構造と、gdiskで作った実物)

この節では、GPT の中身と、128 個・GUID・予備の表がどう置かれているかが分かります。

GPT は UEFI 仕様の第 5 章で決められた方式で、セクター 0 に「保護 MBR」、セクター 1(LBA 1)にヘッダー、LBA 2〜33 に 128 バイト × 128 個の目次を置き、同じヘッダーと目次をディスクの末尾にも置きます。 仕様は「目次の領域に最低 16,384 バイトを確保する」「LBA は 32 ビットではなく 64 ビット」「各パーティションは 36 文字の人が読める名前を持つ」と定めています。

gdisk で UEFI 向けの構成(EFI システム・Microsoft 予約・データ・Linux・スワップ)を 6 つ作った結果です。128 個まで作れることと、先頭の使える位置が 34 セクター目からであることが出ています。

$ gdisk /dev/loop1
Command (? for help): n
Partition number (1-128, default 1):
Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed type of partition to 'EFI system partition'
...
Command (? for help): p
Disk /dev/loop1: 2097152 sectors, 1024.0 MiB
Disk identifier (GUID): 416BD8D5-0198-41FF-B12D-CAC7D60591D3
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 2097118

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          206847   100.0 MiB   EF00  EFI system partition
   2          206848          239615   16.0 MiB    0C01  Microsoft reserved
   3          239616          444415   100.0 MiB   0700  Data
   4          444416          649215   100.0 MiB   8300  Linux filesystem
   5          649216          854015   100.0 MiB   8300  Linux filesystem
   6          854016         1058815   100.0 MiB   8200  Linux swap

同じディスクをバイト単位で見ると、セクター 0 には種類 ee の目次が 1 つだけあり(保護 MBR)、セクター 1 と最後のセクターの先頭に「EFI PART」の文字があります。

$ od -A d -t x1 -j 446 -N 16 /dev/loop1          # 保護 MBR の目次 1 つ目
0000446 00 00 02 00 ee 8a 08 82 01 00 00 00 ff ff 1f 00
$ od -A d -t x1z -j 512 -N 16 /dev/loop1         # LBA 1 = GPT ヘッダー
0000512 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00  >EFI PART....\...<
$ od -A d -t x1z -j $((2097151*512)) -N 16 /dev/loop1   # 最後のセクター = 予備のヘッダー
1073741312 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00  >EFI PART....\...<

1保護 MBR(Protective MBR)

GPT を知らない以前のツールに「このディスクは種類 EE の区画で全部埋まっている」と見せ、空きと誤解して上書きされるのを防ぐ。Microsoft の FAQ も「すべての GPT ディスクは保護 MBR を含む」としている。

2ヘッダー(LBA 1 と末尾)

「EFI PART」の署名、自分の CRC32、目次の CRC32、使える範囲(First usable 34〜)、ディスクの GUID を持つ。末尾に同じものがある。

3目次(LBA 2〜33)

128 バイト × 128 個 = 16KiB。各行は種類 GUID・固有 GUID・開始/終了 LBA(64 ビット)・属性・名前(UTF-16 で 36 文字)。

sfdisk で目次を書き出すと、種類 GUID と名前が見えます。Windows の EFI システムパーティション・Microsoft 予約(MSR)・基本データの GUID は、Microsoft の FAQ にある値と一致しました。

$ sfdisk -d /dev/loop1
label: gpt
label-id: 416BD8D5-0198-41FF-B12D-CAC7D60591D3
first-lba: 34
last-lba: 2097118
/dev/loop1p1 : start=2048,   size=204800, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=5D8C7AC2-..., name="EFI system partition"
/dev/loop1p2 : start=206848, size=32768,  type=E3C9E316-0B5C-4DB8-817D-F92DF00215AE, uuid=11BA92B1-..., name="Microsoft reserved"
/dev/loop1p3 : start=239616, size=204800, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, uuid=984430C0-..., name="Data"
/dev/loop1p4 : start=444416, size=204800, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=D7E51897-..., name="Linux filesystem"
区画の種類 MBR の ID GPT の種類 GUID(gdisk のコード)
EFI システム(ESP) EF C12A7328-F81F-11D2-​BA4B-00A0C93EC93B(EF00)
Microsoft 予約(MSR) — E3C9E316-0B5C-4DB8-​817D-F92DF00215AE(0C01)
Windows の基本データ(NTFS・FAT) 07・0C・06 EBD0A0A2-B9E5-4433-​87C0-68B6B72699C7(0700)
Linux ファイルシステム 83 0FC63DAF-8483-4772-​8E79-3D69D8477DE4(8300)
Linux スワップ 82 0657FD6D-A4AB-43C4-​84E5-0933C84B4F4F(8200)
拡張パーティション 05・0F 無い(128 個あるので不要)
保護 MBR EE —

Microsoft の FAQ によると、UEFI で起動する Windows の起動ディスクには ESP・MSR・OS の入った基本データパーティションが要り、MSR はディスクを最初に区切るときに作られます(16GB 以上のディスクで 128MB)。ディスクの管理で見える「EFI システムパーティション」「回復パーティション」はこの決まりの表れです。

2TBの壁と4パーティション制限の根拠(3TBのディスクで試した)

この節では、MBR の 2TB の壁がどこから来るのかと、3TB のディスクで実際に何が起きるかが分かります。

MBR の目次は「開始セクター」と「セクター数」がそれぞれ 32 ビットなので、最大 2^32 = 4,294,967,296 セクター。1 セクター 512 バイトなら 2,199,023,255,552 バイト = 2TiB(約 2.2TB)が、1 つの区画で表せる上限です。 4 パーティションは、64 バイトの目次が 16 バイト × 4 しか無いためです。

2TiBMBR の 1 区画の上限2^32 セクター × 512 バイト
64バイトMBR の目次の大きさ16 バイト × 4 区画
16KiBGPT の目次の大きさ128 バイト × 128 区画。末尾に同じものがもう 1 組

3TiB のスパースイメージに fdisk で MBR を作ろうとした原文です。fdisk は作る前に警告し、区画の終わりは 2TiB で止まりました。

$ fdisk /dev/loop2
The size of this disk is 3 TiB (3298534883328 bytes). DOS partition table format
cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte
sectors. Use GUID partition table format (GPT).
Command (m for help): n
First sector (2048-4294967295, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4294967295, default 4294967295):
Created a new partition 1 of type 'Linux' and of size 2 TiB.

Device       Boot Start        End    Sectors Size Id Type
/dev/loop2p1       2048 4294967295 4294965248   2T 83 Linux

parted で全体を 1 区画にしようとすると、こちらはエラーで止まります。

$ parted -s /dev/loop2 mklabel msdos mkpart primary 1MiB 100%
Error: partition length of 6442448896 sectors exceeds the msdos-partition-table-imposed maximum of 4294967295

同じ 3TiB を GPT にすると、1 区画で全部使えました。

$ parted -s /dev/loop2 mklabel gpt mkpart primary ext4 1MiB 100% print
Partition Table: gpt
Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3299GB  3299GB  ext4         primary
  • 「2TB」は 10 進の 2,000,000,000,000 バイトではなく 2TiB = 2,199,023,255,552 バイトです。 市販の「2TB」と書かれた HDD(約 2,000GB)は MBR に収まり、「3TB」「4TB」は収まりません。
  • セクターが 4096 バイトの「4Kn」ディスクでは 2^32 × 4096 = 16TiB まで MBR で表せます。ただし Windows の起動や互換性は別の話なので、新しく初期化するなら GPT にします。
  • Linux では、開始位置が 2^32 未満なら 2 つ目の区画を 2TiB の先に置くことが技術的にはできます(parted と Linux カーネルは読めました)。Windows は MBR を 2TB 以下のディスク向けとしており、互換性の面で勧められません。

UEFI・BIOSとの関係(Windows 11はGPTが必要か)

この節では、MBR/GPT と BIOS/UEFI の組み合わせと、Windows 11 の要件が分かります。

Windows は「BIOS 起動なら MBR、UEFI 起動なら GPT」の組み合わせだけで起動します。 Microsoft の「Windows and GPT FAQ」は「UEFI に対応するシステムでは起動パーティションは GPT ディスクに無ければならない。ほかのディスクは MBR でも GPT でもよい」「Windows は MBR ディスクからの UEFI 起動(0xEF 区画)に対応しない」としています。

ファームウェア 起動ディスク データ用ディスク
BIOS(レガシ・CSM) MBR だけ MBR・GPT どちらでも(OS が GPT を読めれば)
UEFI GPT だけ(Windows の場合) MBR・GPT どちらでも
  • Windows 11 の最小要件は「システム ファームウェア:UEFI、セキュアブート対応」「TPM 2.0」です(Microsoft Learn)。 UEFI で起動する以上、起動ディスクは GPT になります。Windows 10 を BIOS + MBR で使っていた PC が Windows 11 の「このPCは要件を満たしていません」になる理由の 1 つです。
  • Microsoft の FAQ によると、Windows Vista/Server 2008 以降はすべてデータ用として GPT を読み書きでき、起動は UEFI の 64 ビット版だけです。32 ビットの Windows XP は保護 MBR しか見えず、GPT のディスクを使えません。
  • Hyper-V の第 2 世代仮想マシンは UEFI で起動するため、ディスクは GPT です。関連記事「Hyper-Vとは|有効化・仮想マシン作成・仮想スイッチ・エラー対処」で扱っています。

今の PC が UEFI か BIOS かを見る

Windows では「システム情報(msinfo32)」に UEFI か Legacy かを示す項目(BIOS モード)があります(Microsoft のブログ)。Windows PE やセットアップ中は、Microsoft Learn の手順どおりレジストリで分かります。

reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType
    0x1 = BIOS   0x2 = UEFI

Linux では /sys/firmware/efi があれば UEFI 起動です。この記事を書いた仮想マシンは BIOS 起動で、フォルダーがありませんでした。

$ ls -d /sys/firmware/efi
ls: cannot access '/sys/firmware/efi': No such file or directory

WindowsでMBRかGPTか確認する方法(diskpart・ディスクの管理・PowerShell)

この節では、Windows 10/11 で手元のディスクが MBR か GPT かを 3 通りで確かめる手順が分かります。いずれも Microsoft Learn の記述で確かめた範囲です。

1

ディスクの管理で見る

スタートで diskmgmt.msc と入力して Enter。下の一覧で「ディスク 0」のような欄を右クリック →「プロパティ」→「ボリューム」タブの「パーティションのスタイル」に「マスター ブート レコード (MBR)」か「GUID パーティション テーブル (GPT)」と出ます。

画面で見るとき

2

diskpart の list disk

管理者としてコマンドプロンプトを開き diskpart → list disk。Microsoft の説明では、この一覧に「ディスクが MBR か GPT か」が出ます。表の右端の「Gpt」列に * が付いたディスクが GPT、空欄が MBR です。見終わったら exit。

複数のディスクを一度に見るとき

3

PowerShell の Get-Disk

管理者として PowerShell を開き Get-Disk。「Partition Style」列に MBR か GPT が出ます(Microsoft の変換手順でも、変換の確認にこの列を使っています)。

スクリプトで見るとき

Get-Disk | Select-Object Number, FriendlyName, Size, PartitionStyle

diskpart は select disk → clean と続けると全部消えます。確認だけなら list disk で止め、select や clean を打たないようにします。PowerShell の書き方は関連記事「PowerShellコマンド一覧|用途別50選とbash対応表・実行例付き」で扱っています。

LinuxでMBRかGPTか確認する方法(fdisk・gdisk・parted・lsblk)

この節では、Linux で 5 つのコマンドがそれぞれ MBR/GPT をどう表示するかが、同じディスクで比べられます。

いちばん手軽なのは fdisk -l の「Disklabel type」で、dos なら MBR、gpt なら GPT です。 同じ MBR のディスク(loop0)と GPT のディスク(loop1)で、各コマンドの出力を並べました。

コマンド MBR のとき GPT のとき
fdisk -l /dev/sdX Disklabel type: dos・識別子 0x6bb06b2b Disklabel type: gpt・識別子が GUID
gdisk -l /dev/sdX MBR: MBR only GPT: not present MBR: protective GPT: present
parted /dev/sdX print Partition Table: msdos Partition Table: gpt
blkid -p /dev/sdX PTTYPE="dos" PTTYPE="gpt"
lsblk -o NAME,SIZE,PTTYPE dos gpt
sfdisk -d /dev/sdX label: dos label: gpt・first-lba: 34
$ fdisk -l /dev/loop1
Disk /dev/loop1: 1 GiB, 1073741824 bytes, 2097152 sectors
Sector size (logical/physical): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 416BD8D5-0198-41FF-B12D-CAC7D60591D3

Device        Start     End Sectors  Size Type
/dev/loop1p1   2048  206847  204800  100M EFI System
/dev/loop1p2 206848  239615   32768   16M Microsoft reserved
/dev/loop1p3 239616  444415  204800  100M Microsoft basic data

$ gdisk -l /dev/loop0        # MBR のディスク
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

$ parted -s /dev/loop1 unit MiB print
Partition Table: gpt
Number  Start    End     Size     File system  Name                  Flags
 1      1.00MiB  101MiB  100MiB                EFI system partition  boot, esp
 2      101MiB   117MiB  16.0MiB               Microsoft reserved    msftres
 3      117MiB   217MiB  100MiB                Data                  msftdata
  • lsblk の PTTYPE 列は udev の情報を使うため、udev が動いていないコンテナーや chroot では空欄になります。この環境でもそうなったので、blkid -p(直接読む)で確かめました。
  • gdisk で MBR のディスクを開くと「converting MBR to GPT format in memory」と出ますが、w を打たない限り書き込まれません。見るだけなら -l を付けます。
  • fdisk で GPT のディスクを -t dos で開くと、保護 MBR の「種類 ee・サイズ 1024M」の 1 区画だけが見えます。GPT を知らないツールの見え方そのものです。

df・du でのディスクの使用量の見方は関連記事「Linuxメモリ・ディスク確認|free・df・du・vmstat・iostat見方」で扱っています。

壊れたときの違い(予備の表で直せるのはGPTだけ)

この節では、目次が壊れたときに MBR と GPT で何が起きるかを、実際に壊して確かめた結果で分かります。

GPT は末尾に同じ目次を持ち、CRC32 で壊れを検出するので、先頭が壊れても予備から戻せます。MBR には予備がありません。 GPT のディスクの LBA 1(ヘッダー)を 0 で潰したときの各ツールの反応です。

$ dd if=/dev/zero of=/dev/loop1 bs=512 seek=1 count=1 conv=notrunc

$ fdisk -l /dev/loop1
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Disklabel type: gpt
/dev/loop1p1   2048  206847  204800  100M EFI System
...(6 区画とも見える)

$ gdisk -l /dev/loop1
Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!
Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK
Main partition table: OK
Backup partition table: OK

$ parted -s /dev/loop1 print
Error: /dev/loop1: unrecognised disk label

gdisk の回復メニューで予備を書き戻すと直りました。

$ gdisk /dev/loop1
Command (? for help): r                # recovery and transformation
Recovery/transformation command (? for help): b   # use backup GPT header
Recovery/transformation command (? for help): w
Do you want to proceed? (Y/N): Y
The operation has completed successfully.

$ gdisk -l /dev/loop1
Found valid GPT with protective MBR; using GPT.

一方、MBR のディスクで目次の 64 バイトを 0 にすると、fdisk はパーティションを 1 つも表示しなくなり、戻す手がかりはディスク上にありません。sfdisk -d で先に書き出しておいた目次を sfdisk /dev/loop0 < mbr-table.txt で戻せたので、MBR のディスクはこの 1 行を習慣にします。

  • 1目次を文字で控えるMBR・GPT とも sfdisk -d /dev/sdX > table.txt。GPT は sgdisk -b table.bin /dev/sdX でもよい
  • 2警告の文言で原因を分ける「primary GPT table is corrupt, but the backup appears OK」は先頭だけの破損。「GPT PMBR size mismatch」はディスクが大きくなった
  • 3直す前に読み取り専用で見るgdisk -l・fdisk -l・sgdisk -v は書き込まない
  • 4セクター単位のコピーで GPT を複製しないMicrosoft の FAQ:ディスクと区画の GUID が重複する。ESP や基本データ区画の中身のコピーは可

バックアップの考え方そのものは関連記事「バックアップ設計の書き方|RPO・RTOの決め方と世代管理の計算例」で扱っています。

MBRからGPTへの変換(Windowsのmbr2gptの条件)

この節では、Windows で MBR のシステムディスクを GPT に変える mbr2gpt の条件・手順・戻り値が、Microsoft Learn の記述に沿って分かります。

mbr2gpt は、Windows 10/11 のシステムディスクをデータを保持したまま MBR から GPT に変える Microsoft 純正のツールです。 ただし条件が厳しく、変換後はファームウェアを UEFI 起動に切り替えないと起動しません。Microsoft Learn の内容をまとめます。

  1. 1PC が UEFI 起動に対応しているか確かめる変換後は GPT モードでしか起動できない。対応していなければ変換しない
  2. 2バックアップを取り、BitLocker は一時停止する暗号化されたボリュームがあると戻り値 6 で失敗。保護を中断していれば変換できる
  3. 3mbr2gpt /validate /disk:0 /allowFullOS検証だけ。既定は Windows PE 向けで、通常の Windows から動かすには /allowFullOS が要る
  4. 4mbr2gpt /convert /disk:0 /allowFullOS「These changes cannot be undone!」と出る。元に戻せない
  5. 5ファームウェアの設定を UEFI 起動に変えて再起動変えないと起動しない。セキュアブートも有効にできるようになる
mbr2gpt の検証項目(Microsoft Learn) 満たさないとき
ディスクが MBR である・システムディスクである データ用ディスクは対象外。ディスクの管理などで消してから初期化する
基本パーティションが 3 つ以下 4 つあると失敗(戻り値 7)。GPT の ESP を作る余地が要る
拡張・論理パーティションが無い 先に消すか、バックアップして作り直す
先頭に 16KB + 2 セクター、末尾に 16KB + 1 セクターの空き 予備の GPT を置く場所。末尾いっぱいまで区画があると失敗
アクティブなシステムパーティションが 1 つ・BCD に既定の OS がある 起動構成が壊れていると失敗

公式ページにある出力例です。

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

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!

戻り値は 0 が成功、1 が取り消し、6 が暗号化されたボリュームあり、7 がディスクの配置が要件を満たさない、100 が「変換はできたが BCD の一部を戻せなかった」です。ログは %windir% の setupact.log・setuperr.log に残ります。

データ用ディスクを Windows で変換する

Microsoft Learn の手順は「ディスクの管理」「diskpart」「PowerShell」の 3 通りで、いずれも先にボリュームを全部消してから変換します。

diskpart
DISKPART> list disk
DISKPART> select disk 2        ← 番号を間違えない
DISKPART> clean                ← この時点でデータは消える
DISKPART> convert gpt
Get-Disk
Clear-Disk -Number 2 -RemoveData -Confirm:$false     # データが消える
Initialize-Disk -Number 2 -PartitionStyle GPT
Get-Disk                                             # Partition Style 列で確認

ディスクの管理では、ボリュームをすべて「ボリュームの削除」で消したあと、ディスクを右クリックして「GPT ディスクに変換」です。消していないとこの項目は選べません。

LinuxでのMBR・GPT変換(gdisk/sgdiskでデータを保持)

この節では、Linux の gdisk・sgdisk でデータを保ったまま MBR と GPT を相互に変換した結果と、失敗する条件が分かります。

gdisk は MBR のディスクを開いた時点でメモリ上に GPT を作り、w で書き込むと変換されます。 区画の位置は変えないので、中のファイルシステムはそのまま使えます。MBR の 1 つ目の区画に ext4 を作ってファイルを置き、GPT に変換してから読めるかを確かめました。

$ mkfs.ext4 -q /dev/loop0p1 && mount /dev/loop0p1 /mnt && echo "hello mbr" > /mnt/hello.txt && umount /mnt
$ sfdisk -d /dev/loop0 > mbr-table.txt        # 戻せるように目次を控える

$ sgdisk -g /dev/loop0                        # MBR → GPT(sgdisk は gdisk の非対話版)
Found invalid GPT and valid MBR; converting MBR to GPT format in memory.
The operation has completed successfully.
$ blkid -p -o value -s PTTYPE /dev/loop0
gpt
$ mount /dev/loop0p1 /mnt && cat /mnt/hello.txt
hello mbr

GPT から MBR へ戻すのは、gdisk の回復メニューの g(GPT を MBR に変換)です。どの区画を基本にするか・論理にするかを確かめて書き込みます。

$ gdisk /dev/loop0
Command (? for help): r
Recovery/transformation command (? for help): g
MBR command (? for help): p
Number  Boot  Start Sector   End Sector   Status   Logical  Primary   Code
   1                  2048       206847   primary     Y        Y      0x83
   2                206848       411647   primary              Y      0x83
   3                411648       616447   primary              Y      0x83
   4                616448       821247   primary              Y      0x83
MBR command (? for help): w
Converted 4 partitions. Finalize and exit? (Y/N): Y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
$ mount /dev/loop0p1 /mnt && cat /mnt/hello.txt
hello mbr

失敗する条件:末尾に予備の GPT を置く場所が無い

MBR の区画がディスクの最後のセクターまで使っていると、予備の GPT(33 セクター)と重なるため、sgdisk は書き込みを止めます。mbr2gpt が「末尾に 16KB + 1 セクター」を求めるのと同じ理由です。

$ fdisk -l /dev/loop3 | tail -1
/dev/loop3p1       2048 131071  129024  63M 83 Linux      ← 最後のセクター 131071 まで

$ sgdisk -g /dev/loop3
Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.
Aborting write of new partition table.
$ echo $?
4

拡張パーティションの中に論理パーティション(5〜7 番)がある MBR を変換したときは、入れ物の 4 番が消え、5〜7 番がそのまま GPT の 5〜7 番になりました。番号が飛ぶだけで中身は変わりません。

変換時にやってはいけないこと(代わりにどうするか)

この節では、MBR/GPT の変換で取り返しがつかなくなる操作と、その代わりに何をするかが分かります。

起動ディスクを「ディスクの管理」や diskpart の clean で変換する

NGこれらは区画を全部消してから変換する手順。Windows ごと消える
→
代わりにシステムディスクは mbr2gpt(/validate を先に)。データ用ディスクだけ消して初期化する

Microsoft Learn:変換できるのは区画もボリュームも無いディスクだけ

UEFI に対応しているか確かめずに mbr2gpt を実行する

NG変換後は GPT モードでしか起動できず、元に戻せない
→
代わりにファームウェアの設定画面で UEFI の起動項目があるかを先に見る。変換後に UEFI 起動へ切り替える

「These changes cannot be undone!」

diskpart で select disk の番号を確かめずに clean

NG別のディスク(データ用・USB)を消す
→
代わりにlist disk の容量と、ディスクの管理の表示を見比べる。不要な外付けは外してから

list disk だけなら何も変わらない

区画を末尾いっぱいまで使ったまま Linux で変換する

NGsgdisk は「Secondary partition table overlaps the last partition by 33 blocks!」で止まる。無理に書くとファイルシステムの末尾を潰す
→
代わりに最後の区画を少し縮めてから変換する。先に sfdisk -d で目次を控える

予備の GPT は末尾 33 セクター(16.5KiB)

GPT のディスクを dd でセクターごと複製して 2 台つなぐ

NGディスク GUID・区画 GUID が重複する(Microsoft の FAQ は「決して起こしてはならない」)
→
代わりに区画の中身だけコピーするか、複製後に sgdisk -G で GUID を振り直す

Windows は重複を見つけると新しい GUID を振る

どちらを選ぶか(判断表)

この節では、新しいディスクやインストールで MBR と GPT のどちらにするかを、状況別に決められます。

状況 選ぶ 理由
Windows 11 を入れる・UEFI の PC GPT 要件が UEFI。UEFI 起動のディスクは GPT
3TB 以上の HDD・SSD GPT MBR は 2TiB の先を表せない
区画を 5 つ以上作る GPT MBR は拡張パーティションが要る。GPT は 128 個
外付け SSD・USB メモリー(新しい機器だけで使う) GPT Windows・macOS・Linux とも読める。予備の表がある
USB メモリー・メモリーカードを以前の機器(テレビ・カーナビ・BIOS 起動の PC)で使う MBR GPT を読めない機器がある。Microsoft も MBR を「32 ビットの PC・以前の PC・メモリーカードなどのリムーバブル」向けとしている
BIOS でしか起動できない PC に OS を入れる MBR Windows は BIOS 起動に MBR が要る
クラウドの仮想マシンのデータディスク GPT 2TB 超に広げられる。各社の手順も GPT が前提のものが多い
Linux の起動ディスク(UEFI) GPT ESP が要る。BIOS 起動でも GPT + BIOS boot partition で起動できる
1

Windows で初期化

ディスクの管理で新しいディスクを右クリック →「ディスクの初期化」→ パーティションスタイルを選ぶ。既定は GPT(Microsoft Learn)。PowerShell は Initialize-Disk -Number N -PartitionStyle GPT。

一度初期化すると Clear-Disk しないと変えられない

2

Linux で GPT にする

parted -s /dev/sdX mklabel gpt か、fdisk の g、gdisk の o。

mklabel は目次を消す

3

Linux で MBR にする

parted -s /dev/sdX mklabel msdos か、fdisk の o。

fdisk は 2TiB 超で警告

4

目次を控える

sfdisk -d /dev/sdX > table.txt。戻すのは sfdisk /dev/sdX < table.txt。

MBR・GPT 両対応

SSD を新しく入れたときの寿命や容量の考え方は関連記事「SSDの寿命は何年?TBWの計算式と確認方法・前兆と長持ちのコツ」で扱っています。

よくあるエラー・つまずき(原文つき)

この節では、MBR/GPT まわりで出る文言と、それぞれの意味と対処が分かります。手元で出たものは原文、Windows のものは Microsoft Learn の記述です。

文言 意味 対処
DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes(fdisk) 2TiB 超のディスクに MBR を作ろうとした fdisk の g か parted の mklabel gpt で GPT にする
To create more partitions, first replace a primary with an extended partition.(fdisk) MBR で基本パーティションが 4 つ埋まった 4 つ目を拡張にして論理を作るか、GPT にする
The primary GPT table is corrupt, but the backup appears OK(fdisk) 先頭の GPT だけ壊れている gdisk の r → b → w で予備から戻す
GPT PMBR size mismatch (2097151 != 4194303) will be corrected by write./The backup GPT table is not on the end of the device.(fdisk) 仮想ディスクを大きくしたあと、予備の GPT が途中に残っている sgdisk -e /dev/sdX で予備を末尾へ移す(手元で last usable が 2097118 → 4194270 に増えた)
Found valid GPT with corrupt MBR; using GPT and will write new protective MBR(gdisk) セクター 0 の保護 MBR が消えた gdisk で w すると保護 MBR が作り直される
Secondary partition table overlaps the last partition by 33 blocks!(sgdisk) MBR → GPT 変換で末尾の予備の置き場所が無い 最後の区画を縮めてから変換する
Re-reading the partition table failed.: Invalid argument(fdisk) 書き込みは済んだが、カーネルが使用中の表を更新できなかった partprobe /dev/sdX か再起動
mbr2gpt の戻り値 7「ディスクのジオメトリとレイアウトが要件を満たしていない」 基本パーティションが 4 つ・拡張がある・末尾に空きが無い など 検証項目の表を見て配置を直す。ログは setupact.log
mbr2gpt の戻り値 6「1 つ以上のボリュームが暗号化されている」 BitLocker が有効 保護を一時停止してから変換し、変換後に保護を作り直す

よくある質問

Q. MBR と GPT の違いを一言で言うと? A. どちらもディスクの区画の目次ですが、MBR は先頭 512 バイトに 4 区画・2TiB まで、GPT は先頭と末尾に 128 区画・2TiB 超を書けます。BIOS 起動は MBR、UEFI 起動は GPT と組になります。

Q. 自分のディスクが MBR か GPT か、Windows で確かめるには? A. 管理者のコマンドプロンプトで diskpart → list disk を打ち、Gpt 列に * があれば GPT です。画面なら diskmgmt.msc でディスクのプロパティ →「ボリューム」タブの「パーティションのスタイル」。PowerShell なら Get-Disk の Partition Style 列です。

Q. Linux で確かめるには? A. sudo fdisk -l /dev/sda の「Disklabel type」が dos なら MBR、gpt なら GPT です。lsblk -o NAME,SIZE,PTTYPE でも一覧で見られます。

Q. Windows 11 には GPT が必要ですか? A. Windows 11 の最小要件は UEFI(セキュアブート対応)と TPM 2.0 で、UEFI で起動するディスクは GPT です。Windows 10 を BIOS + MBR で使っている PC は、mbr2gpt で変換してから UEFI 起動に切り替えると要件の 1 つを満たせます(PC 自体が UEFI に対応している場合)。

Q. 2TB の壁とは何ですか? A. MBR の目次は区画の開始位置と長さを 32 ビットで持つので、512 バイトセクターでは 2^32 × 512 = 2TiB までしか表せません。3TiB のディスクに MBR を作ると、手元の fdisk では区画が 2TiB で止まり、parted はエラーになりました。

Q. MBR から GPT に変換するとデータは消えますか? A. 手段によります。ディスクの管理・diskpart の convert gpt・PowerShell の Initialize-Disk は、区画を全部消してからでないと変換できません。mbr2gpt(システムディスク)と Linux の gdisk/sgdisk は区画の位置を変えずに変換するので、手元の実験では中のファイルがそのまま読めました。いずれもバックアップを取ってから行います。

Q. mbr2gpt が失敗します。 A. 基本パーティションが 4 つある、拡張パーティションがある、末尾に 16KB + 1 セクターの空きが無い、BitLocker が有効、のどれかが多いです。mbr2gpt /validate /disk:0 /allowFullOS の結果と %windir%\setupact.log を見ます。

Q. GPT のディスクは BIOS の PC でも使えますか? A. データ用なら、OS が GPT を読めれば使えます(Windows Vista 以降・Linux)。起動用は、Windows は UEFI が要ります。Linux は GPT に BIOS boot partition を置けば BIOS でも起動できます。

Q. USB メモリーは MBR と GPT のどちらにすべきですか? A. PC だけで使うなら GPT で困りません。テレビ・レコーダー・カーナビや、BIOS 起動専用の PC で使うなら MBR のほうが読める機器が多いです。

Q. GPT の「保護 MBR」とは何ですか? A. GPT のディスクのセクター 0 にある、種類 EE の 1 区画だけを書いた MBR です。GPT を知らない以前のツールに「ディスク全体が使用中」と見せ、空きと誤解して上書きされるのを防ぎます。

Q. fdisk に「GPT PMBR size mismatch」と出ます。 A. ディスク(仮想ディスクなど)を後から大きくしたときに出ます。予備の GPT が以前の末尾に残っているので、sgdisk -e /dev/sdX で末尾へ移すと消えます。

Q. ファイルシステム(NTFS・ext4)と MBR/GPT は何が違いますか? A. MBR/GPT は「どこからどこまでが区画か」の目次、ファイルシステムは各区画の中でファイルをどう置くかの決まりです。層が違うので、GPT の区画に NTFS も ext4 も作れます。

まとめ

  • MBR は先頭 512 バイトに 16 バイト × 4 の目次。開始位置と長さが 32 ビットなので 2TiB・4 区画が上限。拡張パーティションで 5 つ以上にできる。
  • GPT は保護 MBR + ヘッダー + 128 個の目次を先頭と末尾に持ち、CRC32 で破損を検出する。手元でヘッダーを潰しても fdisk・gdisk は予備から読め、gdisk の r → b で直った。
  • Windows の起動は BIOS + MBR か UEFI + GPT の組だけ。Windows 11 の要件は UEFI なので起動ディスクは GPT。
  • 確認は Windows が diskpart の list disk(Gpt 列の *)・ディスクの管理・Get-Disk、Linux が fdisk -l の Disklabel type。
  • 変換は、Windows のシステムディスクは mbr2gpt(基本 3 つ以下・拡張なし・末尾に空き・BitLocker 停止、変換後は UEFI 起動へ)、データ用は消してから初期化。Linux は gdisk/sgdisk で保持したまま変換でき、末尾に 33 セクターの空きが要る。

WSL2 や仮想マシンでディスクを扱う前の準備は関連記事「WSL2環境構築|Ubuntu開発環境をコマンドだけで整える手順」で扱っています。

参考・出典

確認日はいずれも 2026年10月29日です。

  • UEFI Forum「UEFI Specification 2.10 — 5 GUID Partition Table (GPT) Disk Layout」:https://uefi.org/specs/UEFI/2.10/05_GUID_Partition_Table_Format.html
  • Microsoft Learn「Windows and GPT FAQ」:https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq
  • Microsoft Learn「MBR2GPT.EXE」:https://learn.microsoft.com/ja-jp/windows/deployment/mbr-to-gpt
  • Microsoft Learn「ディスクを GPT または MBR に変換する」(ディスクの管理・Diskpart・PowerShell):https://learn.microsoft.com/ja-jp/windows-server/storage/disk-management/change-disk-partition-scheme
  • Microsoft Learn「list」(diskpart):https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/list
  • Microsoft Learn「Initialize New Disks」(ディスクの初期化・パーティションスタイルの既定):https://learn.microsoft.com/en-us/windows-server/storage/disk-management/initialize-new-disks
  • Microsoft Learn「Windows 11 requirements」:https://learn.microsoft.com/en-us/windows/whats-new/windows-11-requirements
  • Microsoft Learn「Boot to UEFI Mode or Legacy BIOS mode」:https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/boot-to-uefi-mode-or-legacy-bios-mode
  • Microsoft Learn(ブログのアーカイブ)「How to check in Windows if you are using UEFI」:https://learn.microsoft.com/en-us/archive/blogs/home_is_where_i_lay_my_head/how-to-check-in-windows-if-you-are-using-uefi
  • util-linux「fdisk(8)」「sfdisk(8)」:https://man7.org/linux/man-pages/man8/fdisk.8.html
  • GPT fdisk(gdisk・sgdisk):https://www.rodsbooks.com/gdisk/
  • GNU Parted マニュアル:https://www.gnu.org/software/parted/manual/

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「MBRとGPTの違い|確認方法・2TBの壁・変換の注意を実機で」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?