GUIDパーティションテーブル

GUIDパーティションテーブル (, GPT) は、ハードディスクドライブ上のパーティションテーブルの配置に関する標準規格である。

これはインテルの提案しているEFI標準の一部であり、旧来のBIOSで使用されているマスターブートレコード (MBR) の置き換えを意図している。

従来のMBRパーティションが、テーブルのパラメータから、1セクタ512Byteで定義した場合、最大2TiB迄の領域までしか管理できないのに対し、GPTでは、最大8ZiB迄の領域を定義、管理できる。

2013年頃には、PC用として一般に市販のHDDの大容量化で、2T越えが始まっておりGPT導入は必至の課題であったが、マザーボード上のROM内などのシステムソフトウェアのEFI対応もだいたい進んできていたことで、無事に導入が進んだという状況であった。

機能 
MBRがマスターブートコード（ブートローダ：起動できるアクティブパーティションを探してプログラムをそこからロードして実行する機械語コードが入っている）で始まるのに対して、GPTはEFIが持つ拡張機能を使ってその処理を実現している。MBRのエントリがディスクの保護と互換性維持の目的で存在しているのに対して、GPTはパーティションテーブル・ヘッダーとしての役割を担っている。

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系

Windows

32ビット版 
古いバージョンの32ビット版（x86版）Windowsでは、2TiB以上の容量のディスク、およびGUIDパーティション自体を扱えないという問題がある。これは各ベンダーの32ビット版デバイスドライバに起因する。

Vista以降では、32ビット版でもこれらの問題は修正されている。2TiB以上のパーティションを扱えないのはMBRパーティションの制限である。

下記の表にない、以前のOS（x86版）ではGPTはサポートされない。x86より以前のアーキテクチャでも同様。

64ビット版 
IA-64版とx86-64版を列挙している。下記の表にないOS（64ビット版）ではGPTはサポートされない。

IA-64アーキテクチャのOSでは当初から、EFIとGPTからの起動をサポートしている。

パーティションの型を表すGUID

脚注

注釈

出典

関連項目 
 マスターブートレコード (MBR)
 GUID
 Unified Extensible Firmware Interface

外部リンク 

GUID パーティション テーブル マイクロソフト社のWebサイトにある説明

ブート
補助記憶装置
BIOS