GUIDパーティションテーブル (, GPT) は、ハードディスクドライブ上のパーティションテーブルの配置に関する標準規格である。
これはインテルの提案しているEFI標準の一部であり、旧来のBIOSで使用されているマスターブートレコード (MBR) の置き換えを意図している。
従来のMBRパーティションが、テーブルのパラメータから、1セクタ512Byteで定義した場合、最大2TiB迄の領域までしか管理できないのに対し、GPTでは、最大8ZiB迄の領域を定義、管理できる。
2013年頃には、PC用として一般に市販のHDDの大容量化で、2T越えが始まっておりGPT導入は必至の課題であったが、マザーボード上のROM内などのシステムソフトウェアのEFI対応もだいたい進んできていたことで、無事に導入が進んだという状況であった。
機能 GPTはLogical Block Addressing (LBA) を使ってディスク内の位置を示す。MBRではCHSによって位置を指定していた。古いMBR情報は LBA 0 に含まれていて、GPTヘッダは LBA 1 に置かれ、その後にパーティションテーブルが続く。Windowsオペレーティングシステム (OS) では、16,384バイト(32セクタ、16KiB)がGPT用に予約されていて、LBA 34 から通常の使い方ができるようになっている。
GPTは冗長性も提供している。GPTヘッダとパーティションテーブルはディスクの先頭と最後部の両方に書き込まれている。
従来のMBR (LBA 0) GPTを使用するディスクにもMBRが存在するのは、MBRを前提としたディスクユーティリティを利用した場合の事故の防止のため(誤って何も中身がないと判断されないため)である。MBRにはそのディスク全体がひとつのパーティションになっているという情報が記述されることになっている。
GPT自体がBIOSによるMBRパーティションの代替であるため、そのパーティション識別子はシステムIDとして 0xEE が設定され、GPTを使用していることを示すことになっているが、双方のパーティションテーブルに有効な値を定義し、それをハイブリッドMBRと呼称する向きもある。但し、これはGPTの「MBRパーティションに対する置き換え」という目的から標準化、明示的な定義がされていない実装であり、OSによって扱いが異なる。ハイブリッドMBRの構成では多くの場合GUIDパーティションの方が優先されるが、Windowsをベースとするシステムでは、GPTをサポートするものであっても有効なMBRが存在する場合は、そちらを優先して解釈する。また、本来EFIとセットの実装であるが、MBRからGPTを理解するローダへ処理を移すという手段により、比較的最近のLinuxではEFIが実装されていないシステムであっても、GPTからの起動や利用を可能としている。
パーティションテーブル・ヘッダ (LBA 1) パーティションテーブル・ヘッダでは、ユーザが使用可能なディスクの範囲を定義している。また、パーティションテーブル内のパーティションエントリ数とサイズを定義している。Windowsマシンでは、128エントリであり、それぞれ128バイトである。したがって、最大128個のパーティションを作成できる。
ヘッダはディスクのGUID () を含んでいる。また、ヘッダ自身のサイズと位置(常に LBA 1)と、第二GPTヘッダのサイズと位置(常にディスクの最後のセクタ)を記録している。また重要な点として、自身のCRC32チェックサムを持っているので、専用のユーティリティ以外でGPTを変更するとチェックサムと不整合を起こす。チェックサムが不整合を起こすと、EFIは第二GPTを第一GPTにコピーする。第二GPTのチェックサムも不正だった場合はディスクにアクセスできなくなる。
パーティションエントリ (LBA 2〜33) パーティションエントリは単純である。最初の16バイトにパーティションの種類を表すGUIDが書き込まれている。たとえば、EFIシステムパーティションのGUIDは{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}である。ただし先頭3項目(8バイト)は項目内でリトルエンディアンなので、実際には先頭から、28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3Bのように書き込まれている。次の16バイトにはそのパーティション固有のGUIDが書き込まれている。続く8バイトにパーティションの最初のLBA、その次の8バイトにパーティションの最後のLBAがリトルエンディアンで書き込まれている。さらにその後に、パーティション名と属性を書き込めるようになっている。
OSのサポート UNIX / Unix系 OSバージョンアーキテクチャBIOS経由でGPTからの起動EFI経由でGPTからの起動備考FreeBSD7.0以降ハイブリッドMBRの構成ではGUID、MBRパーティションの両方が使われる。LinuxGPTを扱えないツールもある。gdisk、GNU GRUB、grub2などがGPTに対応。macOS10.4.0以降(一部機能は10.4.6以降)SolarisSolaris 10 1/06以降Sparc版は非対応。x86/x64版は1/06 (update 2) よりGRUBが標準ブートローダーとなる。よってGPT対応もそれ以降。
Windows 32ビット版 古いバージョンの32ビット版(x86版)Windowsでは、2TiB以上の容量のディスク、およびGUIDパーティション自体を扱えないという問題がある。これは各ベンダーの32ビット版デバイスドライバに起因する。
Vista以降では、32ビット版でもこれらの問題は修正されている。2TiB以上のパーティションを扱えないのはMBRパーティションの制限である。
下記の表にない、以前のOS(x86版)ではGPTはサポートされない。x86より以前のアーキテクチャでも同様。
OSバージョンアーキテクチャBIOS経由でGPTからの起動EFI経由でGPTからの起動GPTへのアクセス備考Windows XPRTMx86Windows Server 2003RTMx86Service Pack 1以降x86ハイブリッドMBRの構成でMBRパーティションの方が優先される。Windows VistaRTM以降x86Windows Server 2008RTM以降x86Windows 7RTM以降x86ハイブリッドMBRの構成でMBRパーティションの方が優先される。Windows 8RTMx86Windows 8.1RTMx86Windows 10TH1 RTM以降x86
64ビット版 IA-64版とx86-64版を列挙している。下記の表にないOS(64ビット版)ではGPTはサポートされない。
IA-64アーキテクチャのOSでは当初から、EFIとGPTからの起動をサポートしている。
OSバージョンアーキテクチャBIOS経由でGPTからの起動EFI経由でGPTからの起動GPTへのアクセス備考Windows XP64-bit Edition, RTMIA-64ハイブリッドMBRの構成でMBRパーティションの方が優先される。リムーバブルディスクはMBRだけサポート。64-bit Edition, Version 2003IA-64Windows Server 2003RTMIA-64ハイブリッドMBRの構成でMBRパーティションの方が優先される。起動ディスクはGPTが必須。x64, Service Pack 1x64ハイブリッドMBRの構成でMBRパーティションの方が優先される。Windows XPx64 Editionx64ハイブリッドMBRの構成でMBRパーティションの方が優先される。リムーバブルディスクはMBRだけサポート。Windows VistaRTMx64ハイブリッドMBRの構成でMBRパーティションの方が優先される。Service Pack 1x64Windows Server 2008RTMWindows 7RTMx64ハイブリッドMBRの構成でMBRパーティションの方が優先される。Windows Server 2008 R2RTMハイブリッドMBRの構成でMBRパーティションの方が優先される。Windows 8RTMx64ハイブリッドMBRの構成でMBRパーティションの方が優先される。Windows 8.1RTMx64Windows Server 2012RTMx64R2, RTMx64Windows 10TH1 RTM以降x64Windows 1121H2 RTM以降x64
パーティションの型を表すGUID 対応OSパーティション・タイプGlobally-Unique Identifier (GUID)—未使用エントリMBRパーティション形式EFIシステムパーティションGNU GRUBのWindowsデータパーティション(FATまたはNTFS)ダイナミックボリューム (LDM) メタデータ・パーティションダイナミックボリューム (LDM) データ・パーティション回復パーティションHP-UXデータパーティションサービスパーティションLinuxデータパーティションRAIDパーティションスワップパーティションLVMパーティションルートパーティション (Alpha)ルートパーティション ()ルートパーティション (ARM 32ビット)ルートパーティション (AArch64)ルートパーティション (IA-64)ルートパーティション (LoongArch 64ビット)ルートパーティション (mipsel: 32ビット MIPS リトルエンディアン)ルートパーティション (mips64el: 64ビット MIPS リトルエンディアン)ルートパーティション (PA-RISC)ルートパーティション (32ビット PowerPC)ルートパーティション (64ビット PowerPC ビッグエンディアン)ルートパーティション (64ビット PowerPC リトルエンディアン)ルートパーティション (RISC-V 32ビット)ルートパーティション (RISC-V 64ビット)ルートパーティション (s390)ルートパーティション (s390x)ルートパーティション ()ルートパーティション (x86)ルートパーティション (x86-64)/usr/パーティション (Alpha)/usr/パーティション (ARC)/usr/パーティション (ARM 32ビット)/usr/パーティション (AArch64)/usr/パーティション (IA-64)/usr/パーティション (LoongArch 64ビット)/usr/パーティション (mipsel: 32ビット MIPS リトルエンディアン)/usr/パーティション (mips64el: 64ビット MIPS リトルエンディアン)/usr/パーティション (PA-RISC)/usr/パーティション (32ビット PowerPC)/usr/パーティション (64ビット PowerPC ビッグエンディアン)/usr/パーティション (64ビット PowerPC リトルエンディアン)/usr/パーティション (RISC-V 32ビット)/usr/パーティション (RISC-V 64ビット)/usr/パーティション (s390)/usr/パーティション (s390x)/usr/パーティション (TILE-Gx)/usr/パーティション (x86)/usr/パーティション (x86-64)ルート用ベリティパーティション (Alpha)ルート用ベリティパーティション (ARC)ルート用ベリティパーティション (ARM 32ビット)ルート用ベリティパーティション (AArch64)ルート用ベリティパーティション (IA-64)ルート用ベリティパーティション (LoongArch 64ビット)ルート用ベリティパーティション (mipsel: 32ビット MIPS リトルエンディアン)ルート用ベリティパーティション (mips64el: 64ビット MIPS リトルエンディアン)ルート用ベリティパーティション (PA-RISC)ルート用ベリティパーティション (64ビット PowerPC リトルエンディアン)ルート用ベリティパーティション (64ビット PowerPC ビッグエンディアン)ルート用ベリティパーティション (32ビット PowerPC)ルート用ベリティパーティション (RISC-V 32ビット)ルート用ベリティパーティション (RISC-V 64ビット)ルート用ベリティパーティション (s390)ルート用ベリティパーティション (s390x)ルート用ベリティパーティション (TILE-Gx)ルート用ベリティパーティション (x86-64)ルート用ベリティパーティション (x86)/usr/用ベリティパーティション (Alpha)/usr/用ベリティパーティション (ARC)/usr/用ベリティパーティション (ARM 32ビット)/usr/用ベリティパーティション (AArch64)/usr/用ベリティパーティション (IA-64)/usr/用ベリティパーティション (LoongArch 64ビット)/usr/用ベリティパーティション (mipsel: 32ビット MIPS リトルエンディアン)/usr/用ベリティパーティション (mips64el: 64ビット MIPS リトルエンディアン)/usr/用ベリティパーティション (PA-RISC)/usr/用ベリティパーティション (64ビット PowerPC リトルエンディアン)/usr/用ベリティパーティション (64ビット PowerPC ビッグエンディアン)/usr/用ベリティパーティション (32ビット PowerPC)/usr/用ベリティパーティション (RISC-V 32ビット)/usr/用ベリティパーティション (RISC-V 64ビット)/usr/用ベリティパーティション (s390)/usr/用ベリティパーティション (s390x)/usr/用ベリティパーティション (TILE-Gx)/usr/用ベリティパーティション (x86-64)/usr/用ベリティパーティション (x86)ルート用ベリティ署名パーティション (Alpha)ルート用ベリティ署名パーティション (ARC)ルート用ベリティ署名パーティション (ARM 32ビット)ルート用ベリティ署名パーティション (AArch64)ルート用ベリティ署名パーティション (IA-64)ルート用ベリティ署名パーティション (LoongArch 64ビット)ルート用ベリティ署名パーティション (mipsel: 32ビット MIPS リトルエンディアン)ルート用ベリティ署名パーティション (mips64el: 64ビット MIPS リトルエンディアン)ルート用ベリティ署名パーティション (PA-RISC)ルート用ベリティ署名パーティション (64ビット PowerPC リトルエンディアン)ルート用ベリティ署名パーティション (64ビット PowerPC ビッグエンディアン)ルート用ベリティ署名パーティション (32ビット PowerPC)ルート用ベリティ署名パーティション (RISC-V 32ビット)ルート用ベリティ署名パーティション (RISC-V 64ビット)ルート用ベリティ署名パーティション (s390)ルート用ベリティ署名パーティション (s390x)ルート用ベリティ署名パーティション (TILE-Gx)ルート用ベリティ署名パーティション (x86-64)ルート用ベリティ署名パーティション (x86)/usr/用ベリティ署名パーティション (Alpha)/usr/用ベリティ署名パーティション (ARC)/usr/用ベリティ署名パーティション (ARM 32ビット)/usr/用ベリティ署名パーティション (AArch64)/usr/用ベリティ署名パーティション (IA-64)/usr/用ベリティ署名パーティション (LoongArch 64ビット)/usr/用ベリティ署名パーティション (mipsel: 32ビット MIPS リトルエンディアン)/usr/用ベリティ署名パーティション (mips64el: 64ビット MIPS リトルエンディアン)/usr/用ベリティ署名パーティション (PA-RISC)/usr/用ベリティ署名パーティション (64ビット PowerPC リトルエンディアン)/usr/用ベリティ署名パーティション (64ビット PowerPC ビッグエンディアン)/usr/用ベリティ署名パーティション (32ビット PowerPC)/usr/用ベリティ署名パーティション (RISC-V 32ビット)/usr/用ベリティ署名パーティション (RISC-V 64ビット)/usr/用ベリティ署名パーティション (s390)/usr/用ベリティ署名パーティション (s390x)/usr/用ベリティ署名パーティション (TILE-Gx)/usr/用ベリティ署名パーティション (x86-64)/usr/用ベリティ署名パーティション (x86)ホームパーティション (/home/)サーバーデータパーティション (/srv/)バリアブルデータパーティション (/var/)一時データパーティション (/var/tmp/)拡張ブートローダーパーティション (/boot/)ユーザー別ホームパーティションLUKS予約済みFreeBSD (freebsd)ブートパーティション (freebsd-boot)スワップパーティション (freebsd-swap)UFSパーティション (freebsd-ufs)パーティション (freebsd-vinum)ZFSパーティション (freebsd-zfs) HFS (HFS+) パーティション Apple UFSコンテナ ZFS Apple RAID パーティション Apple RAID 、オフライン Apple ブートパーティション (回復モード) Apple ラベル Apple TV リカバリパーティション SoftRAID_Status SoftRAID_Scratch SoftRAID_Volume SoftRAID_Cache SolarisブートパーティションRootパーティションスワップパーティションバックアップパーティション/usrパーティション/varパーティション/homeパーティション—EFI_ALTSCTR予約済みパーティション
脚注
注釈
出典
関連項目 マスターブートレコード (MBR) GUID Unified Extensible Firmware Interface
外部リンク
GUID パーティション テーブル マイクロソフトのWebサイトにある説明