GUIDパーティションテーブル
GUIDパーティションテーブル(GUID Partition Table、GPT)は、ハードディスクドライブ上のパーティションテーブルの配置に関する標準規格である。これはインテルの提案しているEFI標準の一部であり、旧来のBIOSで使用されているマスターブートレコード(MBR)の置き換えを意図している。従来のMBRパーティションが、テーブルのパラメータから、1セクタ512Byteで定義した場合、最大2TiB迄の領域までしか管理できないのに対し、GPTでは、最大8ZiB迄の領域を定義、管理できる。
2013年現在、EFIが使われるようになり大容量のHDDが市場に出回るようになったことでGPT普及の体制が整った。
目次 |
機能 [編集]
MBRがマスターブートコード(起動できるアクティブパーティションを探してプログラムをそこからロードして実行する機械語コードが入っている)で始まるのに対して、GPTはEFIが持つ拡張機能を使ってその処理を実現している。MBRのエントリがディスクの保護と互換性維持の目的で存在しているのに対して、GPTはパーティションテーブル・ヘッダーとしての役割を担っている。
GPTはLogical Block Addressing(LBA)を使ってディスク内の位置を示す。MBRではCHSによって位置を指定していた。古いMBR情報は LBA 0 に含まれていて、GPTヘッダーは LBA 1 に置かれ、その後にパーティションテーブルが続く。64ビットのWindowsオペレーティングシステムでは、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からの起動や利用を可能としている。
パーティションテーブル・ヘッダー (LBA 1) [編集]
パーティションテーブル・ヘッダーでは、ユーザが使用可能なディスクの範囲を定義している。また、パーティションテーブル内のパーティションエントリ数とサイズを定義している。64ビット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 ディストリビューション |
x86-64、IA-64、x86 | Yes | Yes | fdisk等のツールはGPTを扱えない。gdisk[2]、GNU_GRUB、grub2などがGPTに対応。 |
| Mac OS X | 10.4.0 以降 (一部機能は 10.4.6 以降) [3] |
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 | No (このバージョンではサポートされない) | x86 | No | No | No | RTM |
| Windows Server 2003 | No (このバージョンではサポートされない) | x86 | No | No | No | RTM |
| Windows Server 2003 | Service Pack 1以降 | x86 | No | No | データ用可、起動不可 [4] | ハイブリッド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パーティションの方が優先される。[5] |
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が必須。[6] |
| Windows Server 2003 | x64, Service Pack 1 | x64 | No | No | データ用可、起動不可 | ハイブリッドMBRの構成でMBRパーティションの方が優先される。 |
| Windows XP | x64 Edition | x64 | No | No | データ用可、起動不可[4] | ハイブリッドMBRの構成でMBRパーティションの方が優先される。リムーバブルディスクはMBRだけサポート。 |
| Windows Vista | RTM | x64 | No | No | データ用可、起動不可[7] | ハイブリッド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パーティションの方が優先される。[5] |
| Windows Server 2008 R2 | RTM | x64, IA-64 | No | Yes | Yes | ハイブリッドMBRの構成でMBRパーティションの方が優先される。 |
パーティションの型を表す 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[8] | 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ブロックだけバイト順序が入れ替わっている点に注意。
関連項目 [編集]
脚注 [編集]
- ^ https://help.ubuntu.com/community/MacBook
- ^ http://www.rodsbooks.com/gdisk
- ^ http://refit.sourceforge.net/myths/
- ^ a b http://www.microsoft.com/whdc/device/storage/GPT_FAQ.mspx#ELD
- ^ a b http://www.rodsbooks.com/gdisk/hybrid.html
- ^ http://codeidol.com/windows/inside-windows-server-2003/Configuring-Data-Storage/Working-with-GPT-Disks/ Working with GPT Disks
- ^ UEFI と Windows http://www.microsoft.com/japan/whdc/system/platform/firmware/UEFI_Windows.mspx
- ^ http://grub.enbug.org/BIOS_Boot_Partition
外部リンク [編集]
- GUID パーティション テーブル マイクロソフト社のWebサイトにある説明