GUIDパーティションテーブル(GPT)とは
GUID
パーティションテーブル(GPT)は、
ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などのストレージデバイスにおける
パーティションテーブルの配置を定める、比較的新しい標準規格です。従来のMBR(マスターブートレコード)方式に代わるものとして、
インテルが提唱するEFI(Extensible Firmware Interface)の一部として導入されました。
MBRの限界とGPTの必要性
従来のMBR方式では、ディスクの容量が最大2TiB(テラバイト)までしか認識できませんでした。しかし、近年のHDDの大容量化に伴い、2TiBを超えるストレージを扱う必要性が高まりました。そこで登場したのがGPTです。GPTでは最大8ZiB(ゼタバイト)という、事実上無制限とも言える領域を管理することが可能です。
2013年頃から、PC向けの大容量HDDが2TiBを超えるものが増え始め、GPTの導入は必須となりました。マザーボードのROM内などの
システムソフトウェアがEFIに対応したことも、GPTの普及を後押ししました。
GPTの仕組み
MBRがマスターブートコード(ブートローダー)で始まるのに対し、GPTはEFIの拡張機能を使ってブート処理を行います。MBRのエントリがディスクの保護と互換性維持の目的であるのに対し、GPTは
パーティションテーブル・ヘッダーとしての役割を担っています。
GPTは、ディスク内の位置を
Logical Block Addressing (LBA) で指定します。MBRではCHS(シリンダー、ヘッド、セクター)という方式を使っていました。
古いMBRの情報はLBA 0にあり、GPTヘッダーはLBA 1に置かれ、その後に
パーティションテーブルが続きます。Windowsでは、16,384バイト(16KiB)がGPT用に予約されており、LBA 34から通常の領域として使用できます。
GPTは、冗長性も考慮されています。GPTヘッダーと
パーティションテーブルは、ディスクの先頭と末尾の両方に書き込まれます。
GPTにおけるMBRの役割
GPTを使用するディスクにもMBRが存在します。これは、MBRを前提としたディスクユーティリティが、GPTディスクを誤って「中身がない」と判断してしまうことを防ぐためのものです。MBRには、ディスク全体がひとつの
パーティションであるという情報が記述されます。
GPTの
パーティション識別子は、システムIDとして `0xEE` が設定され、GPTを使用していることを示します。ただし、両方の
パーティションテーブルに有効な値を設定し、それをハイブリッドMBRと呼ぶこともあります。しかし、これは標準化されていない実装であり、OSによって扱いが異なります。Windowsベースのシステムでは、GPTをサポートしていても、有効なMBRが存在する場合はそちらが優先されることがあります。
パーティションテーブル・ヘッダー (LBA 1)
パーティションテーブル・ヘッダーは、ユーザーが使用可能なディスクの範囲、
パーティションエントリの数とサイズを定義します。Windowsマシンでは、128個の
パーティションエントリ(各128バイト)が用意されており、最大128個の
パーティションを作成できます。
ヘッダーには、ディスクのGUID(Globally Unique Identifier)や、ヘッダー自身のサイズと位置、第二GPTヘッダーのサイズと位置が記録されます。また、ヘッダーのCRC32チェックサムも含まれています。このチェックサムが不正になると、EFIは第二GPTを第一GPTにコピーします。第二GPTも不正だった場合は、ディスクにアクセスできなくなります。
パーティションエントリ (LBA 2〜33)
パーティションエントリは、
パーティションの種類を表すGUID、
パーティション固有のGUID、
パーティションの最初のLBA、
パーティションの最後のLBA、
パーティション名と属性などの情報を含んでいます。例えば、EFIシステム
パーティションのGUIDは `{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}` です。
OSのサポート
UNIX/Unix系OS
多くのUNIX/Unix系OSはGPTをサポートしています。
Windows
32ビット版
以前の32ビット版Windowsでは、2TiB以上の容量のディスクやGPT自体を扱えない問題がありました。しかし、Vista以降の32ビット版Windowsでは、この問題は修正されています。
64ビット版
IA-64版とx86-64版の両方でGPTがサポートされています。
IA-64アーキテクチャのOSでは、当初からEFIとGPTからの起動をサポートしています。
GPTでは、
パーティションの種類をGUIDで表します。これにより、様々な種類の
パーティションを柔軟に管理できます。
まとめ
GPTは、大容量ストレージを効率的に管理するための重要な規格です。従来のMBR方式の制限を克服し、より柔軟で信頼性の高い
パーティション管理を実現しています。近年のパソコンではGPTが広く採用されており、現代のストレージ技術において不可欠な要素となっています。
関連事項
マスターブートレコード (MBR)
GUID
Unified Extensible Firmware Interface (UEFI)
外部リンク
GUID パーティション テーブル (
マイクロソフト社のWebサイトにある説明)