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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

GUIDパーティションテーブルGUID Partition TableGPT)は、ハードディスクドライブ上のパーティションテーブルの配置に関する標準規格である。これはインテルの提案しているEFI標準の一部であり、旧来のBIOSで使用されているマスターブートレコード (MBR) の置き換えを意図している。従来のMBRパーティションが、テーブルのパラメータから、1セクタ512Byteで定義した場合、最大2TiB迄の領域までしか管理できないのに対し、GPTでは、最大8ZiB迄の領域を定義、管理できる。

2013年現在、EFIが使われるようになり大容量のHDDが市場に出回るようになったことでGPT普及の体制が整った。

GUIDパーティションテーブルのレイアウト。各 LBA は 512バイト。

機能[編集]

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

GPTはLogical Block Addressing (LBA) を使ってディスク内の位置を示す。MBRではCHSによって位置を指定していた。古いMBR情報は LBA 0 に含まれていて、GPTヘッダーは LBA 1 に置かれ、その後にパーティションテーブルが続く。Windowsオペレーティングシステム (OS) では、16,384バイト(32セクター)が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からの起動や利用を可能としている[1]

パーティションテーブル・ヘッダー (LBA 1)[編集]

パーティションテーブル・ヘッダーでは、ユーザが使用可能なディスクの範囲を定義している。また、パーティションテーブル内のパーティションエントリ数とサイズを定義している。Windowsマシンでは、128エントリであり、それぞれ128バイトである。したがって、最大128個のパーティションを作成できる。

ヘッダーはディスクのGUID (Globally Unique Identifier) を含んでいる。また、ヘッダー自身のサイズと位置(常に 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のサポート[編集]

表中の注釈

"このバージョンではサポートされない"
データ用としてもサポートされない。MBRにあるパーティションだけがOSからアクセス可能。
"リムーバブルディスクはMBRだけサポート"
ユーザーからはGUIDパーティションにアクセス不可。サードパーティー製のツール経由でだけGUIDパーティションにアクセス可能。

Unix系[編集]

OS バージョン アーキテクチャ BIOS経由でGPTからの起動 EFI経由でGPTからの起動 備考
FreeBSD 7.0 以降 x86, x86-64 Yes Yes ハイブリッドMBRの構成ではGUID、MBRパーティションの両方が使われる。
Linux ほとんどの x86 Linux ディストリビューション

Fedora 8 以降、Ubuntu 8.04 以降[2]

x86-64IA-64x86 Yes Yes fdisk等のツールはGPTを扱えない。gdisk[3]、GNU_GRUB、grub2などがGPTに対応。
Mac OS X 10.4.0 以降
(一部機能は 10.4.6 以降) [4]
x86, x86-64 No Yes
Solaris Solaris 10 1/06以降 x86, x86-64 Yes Yes 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 XP RTM x86 No No No
Windows Server 2003 RTM x86 No No No
Windows Server 2003 Service Pack 1以降 x86 No No データ用可、起動不可 [5] ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows Vista RTM以降 x86 No No データ用可、起動不可 ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows Server 2008 RTM以降 x86 No No データ用可、起動不可 ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows 7 RTM以降 x86 No No データ用可、起動不可 ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]
Windows 8 RTM x86 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]
Windows 8.1 RTM x86 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]

Windows(64ビット版)[編集]

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

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

OS バージョン アーキテクチャ BIOS経由でGPTからの起動 EFI経由でGPTからの起動 GPTへのアクセス 備考
Windows XP 64-bit Edition, RTM IA-64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。リムーバブルディスクはMBRだけサポート。
Windows XP 64-bit Edition, Version 2003 IA-64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。リムーバブルディスクはMBRだけサポート。
Windows Server 2003 RTM IA-64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。起動ディスクはGPTが必須。[7]
Windows Server 2003 x64, Service Pack 1 x64 No No データ用可、起動不可 ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows XP x64 Edition x64 No No データ用可、起動不可[5] ハイブリッドMBRの構成でMBRパーティションの方が優先される。リムーバブルディスクはMBRだけサポート。
Windows Vista RTM x64 No No データ用可、起動不可[8] ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows Vista Service Pack 1 x64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows Server 2008 RTM x64, IA-64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows 7 RTM x64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]
Windows Server 2008 R2 RTM x64, IA-64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。
Windows 8 RTM x64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]
Windows 8.1 RTM x64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]
Windows Server 2012 RTM x64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]
Windows Server 2012 R2 RTM x64 No Yes Yes ハイブリッドMBRの構成でMBRパーティションの方が優先される。[6]

パーティションの型を表す GUID[編集]

対応 OS パーティション・タイプ Globally-Unique Identifier (GUID)
(None) 未使用エントリ 00000000-0000-0000-0000-000000000000
MBR パーティション形式 024DEE41-33E7-11D3-9D69-0008C781F39F
EFI システムパーティション C12A7328-F81F-11D2-BA4B-00A0C93EC93B
bios_grub[9] 21686148-6449-6E6F-744E-656564454649
Windows 予約されたパーティション E3C9E316-0B5C-4DB8-817D-F92DF00215AE
データパーティション (FAT または NTFS) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
ダイナミックボリューム (LDM) メタデータ・パーティション 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
ダイナミックボリューム (LDM) データ・パーティション AF9B60A0-1431-4F62-BC68-3311714A69AD
HP-UX データパーティション 75894C1E-3AEB-11D3-B7C1-7B03A0000000
サービスパーティション E2A1E728-32E3-11D6-A682-7B03A0000000
Linux データパーティション EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
RAID パーティション A19D880F-05FC-4D3B-A006-743F0F84911E
スワップパーティション 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
LVM パーティション E6D6D379-F507-44C2-A23C-238F2A3DF928
予約済み 8DA63339-0007-60C0-C436-083AC8230908
FreeBSD データパーティション 516E7CB4-6ECF-11D6-8FF8-00022D09712B
スワップパーティション 516E7CB5-6ECF-11D6-8FF8-00022D09712B
UFS パーティション 516E7CB6-6ECF-11D6-8FF8-00022D09712B
Vinum Volume Manager パーティション 516E7CB8-6ECF-11D6-8FF8-00022D09712B
Mac OS X HFS (HFS+) パーティション 48465300-0000-11AA-AA11-00306543ECAC
Apple UFS 55465300-0000-11AA-AA11-00306543ECAC
ZFS 6A898CC3-1DD2-11B2-99A6-080020736631
Apple RAID パーティション 52414944-0000-11AA-AA11-00306543ECAC
Apple RAID パーティション、オフライン 52414944-5F4F-11AA-AA11-00306543ECAC
Apple ブートパーティション 426F6F74-0000-11AA-AA11-00306543ECAC
Apple ラベル 4C616265-6C00-11AA-AA11-00306543ECAC
Apple TV リカバリパーティション 5265636F-7665-11AA-AA11-00306543ECAC
Solaris ブートパーティション 6A82CB45-1DD2-11B2-99A6-080020736631
Root パーティション 6A85CF4D-1DD2-11B2-99A6-080020736631
スワップパーティション 6A87C46F-1DD2-11B2-99A6-080020736631
バックアップパーティション 6A8B642B-1DD2-11B2-99A6-080020736631
/usr パーティション 6A898CC3-1DD2-11B2-99A6-080020736631
/var パーティション 6A8EF2E9-1DD2-11B2-99A6-080020736631
/home パーティション 6A90BA39-1DD2-11B2-99A6-080020736631
EFI_ALTSCTR 6A9283A5-1DD2-11B2-99A6-080020736631
予約済みパーティション 6A945A3B-1DD2-11B2-99A6-080020736631
6A9630D1-1DD2-11B2-99A6-080020736631
6A980767-1DD2-11B2-99A6-080020736631
6A96237F-1DD2-11B2-99A6-080020736631
6A8D2AC7-1DD2-11B2-99A6-080020736631

注意:Linux と Windows はデータパーティションを表すGUIDとして同じIDを使用している。

注意:この表にあるGUIDはリトルエンディアンで表記されている。例えば、EFIシステムパーティションのGUIDは C12A7328-F81F-11D2-BA4B-00A0C93EC93B となっているが、これは次のような16バイトの並びである: 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B。先頭3ブロックだけバイト順序が入れ替わっている点に注意。

関連項目[編集]

脚注[編集]

  1. ^ http://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html
  2. ^ https://help.ubuntu.com/community/MacBook
  3. ^ http://www.rodsbooks.com/gdisk
  4. ^ http://refit.sourceforge.net/myths/
  5. ^ a b http://www.microsoft.com/whdc/device/storage/GPT_FAQ.mspx#ELD
  6. ^ a b c d e f g h http://www.rodsbooks.com/gdisk/hybrid.html
  7. ^ http://codeidol.com/windows/inside-windows-server-2003/Configuring-Data-Storage/Working-with-GPT-Disks/ Working with GPT Disks
  8. ^ UEFI と Windows http://www.microsoft.com/japan/whdc/system/platform/firmware/UEFI_Windows.mspx
  9. ^ http://grub.enbug.org/BIOS_Boot_Partition

外部リンク[編集]