
GUIDパーティション テーブル( GPT ) は、ユニバーサル一意識別子(UUID) (グローバル一意識別子 (GUID) とも呼ばれる)を使用する、ハード ディスク ドライブやソリッド ステート ドライブなどの物理コンピュータ ストレージ デバイスのパーティション テーブルのレイアウトに関する標準です。Unified Extensible Firmware Interface (UEFI) 標準 ( Unified EFI Forum がPC BIOSの代替として提案) の一部を形成していますが、従来の 512 バイトディスク セクターの論理ブロック アドレス指定(LBA) に 32 ビットを使用するマスター ブート レコード(MBR) パーティション テーブルの制限のため、一部の BIOS でも使用されています。
最新のパーソナル コンピュータオペレーティング システムはすべてGPT をサポートしています。x86アーキテクチャ上のmacOSやMicrosoft Windowsなど一部のオペレーティング システムでは、EFI ファームウェアを搭載したシステムでのみ GPT パーティションからの起動をサポートしていますが、 FreeBSDやほとんどのLinux ディストリビューションでは、BIOS または EFI ファームウェア インターフェイスのいずれかを備えたシステムで GPT パーティションからの起動が可能です。
歴史
1980 年代初頭から広く使用されてきたマスター ブート レコード (MBR) パーティション スキームは、現代のハードウェアの使用に制限を課していました。ブロック アドレスと関連情報の使用可能なサイズは 32 ビットに制限されています。512 バイトのセクターを持つハード ディスクの場合、MBR パーティション テーブル エントリは最大 2 TiB (2³² × 512 バイト) または 2.20 TB (2.20 × 10¹² バイト) のサイズを許可します。[1]
1990 年代後半、Intel は、最終的にはUnified Extensible Firmware Interface (UEFI)となるものの一部として、新しいパーティション テーブル形式を開発しました。GUID パーティション テーブルは、UEFI 2.8 仕様の第 5 章で指定されています。[2] GPT は、論理ブロック アドレスに 64 ビットを使用し、最大ディスク サイズを 2 64セクターにすることができます。512 バイト セクターのディスクの場合、最大サイズは 8 ZiB (2 64 × 512 バイト) または 9.44 ZB ( 9.44 × 10²¹ バイト) です。[1] 4,096 バイト セクターのディスクの場合、最大サイズは 64 ZiB (2 64 × 4,096 バイト) または 75.6 ZB (75.6 × 10²¹ バイト) です。
2010年、ハードディスクメーカーは4,096バイトセクター(Advanced Format)を搭載したドライブを導入した。[3]従来のハードウェアおよびソフトウェアとの互換性のため、これらのドライブには、基盤となる物理セクターが4,096バイトであるにもかかわらず、ハードドライブにアクセスするエンティティに512バイトセクターを提示するエミュレーション技術( 512e )が含まれている。 [4]ドライブが1回の不整合な4,096バイト書き込み操作を満たすために2回の読み取り-変更-書き込み操作を実行しなければならない場合、書き込み操作でパフォーマンスが低下する可能性がある。[4] 2014年4月以降、エミュレーション技術のないエンタープライズクラスのドライブ(4Kネイティブ)が市場で入手可能である。[5] [6]
オペレーティングシステム内での4KB論理セクターのサポートの準備状況は、オペレーティングシステムの種類、ベンダー、バージョンによって異なります。[7] たとえば、Microsoft Windowsは、 Windows 8とWindows Server 2012 (どちらも2012年にリリース)以降、 UEFIで4Kネイティブドライブをサポートしています。[8]
特徴
MBR と同様に、GPT は従来のシリンダ ヘッド セクター(CHS) アドレス指定の代わりに論理ブロック アドレス指定(LBA) を使用します。保護 MBR は LBA 0 に格納され、GPT ヘッダーは LBA 1 に格納され、バックアップ GPT ヘッダーは最終 LBA に格納されます。GPT ヘッダーには、通常 LBA 2 にあるパーティション テーブル (パーティション エントリ アレイ) へのポインターがあります。パーティション テーブルの各エントリのサイズは 128 バイトです。UEFI 仕様では、セクター サイズに関係なく、パーティション エントリ アレイに最低 16,384 バイトが割り当てられることが規定されています。[9]したがって、512バイトのセクターを持つディスクでは、少なくとも32のセクターがパーティションエントリアレイに使用され、最初の使用可能なブロックはLBA 34以上にありますが、4,096バイトのセクターのディスクでは、少なくとも4つのセクターがパーティションエントリアレイに使用され、最初の使用可能なブロックはLBA 6以上にあります。
MBR バリアント
保護 MBR (LBA 0)
限定的な下位互換性のため、従来のマスターブートレコード(MBR)のスペースはGPT仕様でまだ予約されていますが、MBRベースのディスクユーティリティがGPTディスクを誤認識して上書きするのを防ぐ方法で使用されています。これは保護MBRと呼ばれます。[10]
GPT ドライブ全体 (「全体」は実際には MBR で表現できるドライブ全体を意味します) を含むEEhタイプの単一のパーティションが示され、GPT として識別されます。GPT ディスクを読み取れないオペレーティング システムとツールは、通常、ディスクに不明なタイプの 1 つのパーティションが含まれており空き領域がないと認識し、ユーザーがこのパーティションの削除を明示的に要求して確認しない限り、ディスクの変更を拒否します。これにより、偶発的な消去が最小限に抑えられます。[10]さらに、GPT 対応 OS は保護 MBR をチェックし、囲まれたパーティション タイプがEEhタイプでない場合、またはターゲット デバイスに複数のパーティションが定義されている場合、OS はパーティション テーブルの操作を拒否することがあります。[11]
ディスクの実際のサイズが、MBR パーティション テーブルの従来の 32 ビット LBA エントリを使用して表現できる最大パーティション サイズを超える場合、このパーティションの記録サイズは最大値で切り捨てられ、ディスクの残りの部分は無視されます。これは、セクターあたり 512 バイトのディスク ( 512eを参照) を想定すると、報告される最大サイズは 2 TiB になります。4 KiB セクター ( 4Kn )で 16 TiB になりますが、多くの古いオペレーティング システムやツールはセクター サイズを 512 バイトにハードコードされているか、32 ビットの計算に制限されているため、2 TiB の制限を超えると互換性の問題が発生する可能性があります。[10]
ハイブリッド MBR (LBA 0 + GPT)
EFIではなくBIOSサービスを通じてGPTベースのブートをサポートするオペレーティングシステムでは、最初のセクターはブートローダーコードの第1段階を格納するために使用されることもありますが、GPTパーティションを認識するように変更されます。MBRのブートローダーは、セクターサイズを512バイトと想定してはなりません。[10]
パーティションテーブルヘッダー (LBA 1)
パーティションテーブルヘッダーは、ディスク上の使用可能なブロックを定義します。また、パーティションテーブルを構成するパーティションエントリの数とサイズも定義します(テーブル内のオフセット80と84)。[2] : 119
パーティションエントリ (LBA 2~33)
プライマリ ヘッダーの後、バックアップ ヘッダーの前に、パーティション エントリ アレイがパーティションを記述します。各エントリ ブロックの最小サイズは 128 バイトです。[12]ディスク上のアレイの開始位置と各エントリのサイズは、GPT ヘッダーで指定されます。各エントリの最初の 16 バイトは、パーティション タイプのグローバル一意識別子 (GUID) を指定します。たとえば、EFI システム パーティションの GUID はC12A7328-F81F-11D2-BA4B-00A0C93EC93Bです。次の 16 バイトは、パーティションに固有の GUID です。その後に、開始および終了の 64 ビット LBA、パーティション属性、および 36 文字 (最大) のUnicodeパーティション名が続きます。GUID の性質と目的、および RFC 4122 に従って、GUID パーティション タイプ指定子の一意性を保証するために中央レジストリは必要ありません。[13] [2] : 2200
64 ビットのパーティション テーブル属性は、すべてのパーティション タイプに共通する 48 ビットの属性と、タイプ固有の 16 ビットの属性の間で共有されます。
マイクロソフトは、基本データパーティションのタイプ固有の属性を次のように定義しています。[15] [16]
GoogleはChromeOSカーネルのタイプ固有の属性を次のように定義しています。[17]
オペレーティングシステムのサポート
UNIXおよびUnix系システム
Windows: 32 ビット版
Windows 7以前では32ビットプラットフォームでUEFIをサポートしていないため、GPTパーティションからの起動は許可されません。[31]
Windows: 64 ビット版
ディスクあたりのパーティション数は128までに制限される。[31]
パーティションタイプ GUID
「パーティション タイプ GUID」とは、各パーティション タイプがそのタイプに固有の GUID 番号によって厳密に識別されることを意味します。したがって、同じタイプのパーティションはすべて同じ「パーティション タイプ GUID」を持ちます。各パーティションには、個別のエントリとして「パーティション固有の GUID」もあり、名前が示すように、これは各パーティションの一意の ID です。
参照
- アドバンスト アクティブ パーティション(AAP)
- Apple パーティション マップ(APM)
- ブートエンジニアリング拡張レコード(BEER)
- BSD ディスクラベル
- デバイス構成オーバーレイ(DCO)
- 拡張ブートレコード(EBR)
- ホスト保護地域(HPA)
- パーティションの配置
- リジッドディスクブロック(RDB)
- 巻目次(VTOC)
注記
- ^ 整数定数に接尾辞を追加すると、その定数は 型になります。
ULLunsigned long long int - ^ サードパーティの実装が存在する (GPTTSD)
- ^ Windows XP 64ビットは通常GPTディスクからの起動をサポートしていませんが、GPTディスクからXPを起動する非公式の方法が存在します。[36]
- ^ サービスパック1または2を使用している場合のみ
- ^ マルチディスク セットアップでは、非 UEFI ブートローダー (ブート ドライブ) には MBR ベースのパーティション分割が必要ですが、システム ドライブでは GUID パーティション分割を使用できます。
- ^ この表の GUID は RFC 4122 に従って記述されており、つまりビッグエンディアン バイト順序 で、バージョンビットの位置で認識できます。たとえば、EFI システムパーティション (
C12A7328-F81F-11D2-BA4B-00A0C93EC93B) の GUID は、GPT データ構造 (リトルエンディアン) でシリアル化されると、16 進シーケンス に対応します28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B。最初の 3 つのブロックはリトルエンディアンにバイトスワップされ、最後のブロックはバイト配列です。詳細については、TN2166 [11]を参照してください。 - ^ この GUID の形成は GUID 定義に従っていません。文字列「Hah!IdontNeedEFI 」のASCIIコードを使用して形成されます。このような「GUID」値の形成により、保証された GUID の一意性が損なわれます。
- ^ ab 一部のコンピュータメーカーは、EFIシステムパーティションに類似したパーティションに独自のGUIDを持っていますが、そこにはメーカー固有の回復ツールを起動するためのブートローダーが格納されています。[43]
- ^ ab 以前は、LinuxはデータパーティションにWindowsと同じGUIDを使用していました(基本データパーティション:EBD0A0A2-B9E5-4433-87C0-68B6B72699C7)。Linuxには、データパーティション用に定義された個別の一意のパーティションタイプGUIDがありませんでした。これにより、UEFI-GPTセットアップでLinuxとWindowsをデュアルブートするときに問題が発生しました。新しいGUID(Linuxファイルシステムデータ:0FC63DAF-8483-4772-8E79-3D69D8477DE4)は、GPT fdiskとGNU Parted開発者によって共同で定義されました。[45]これは、GPT fdiskでタイプコード0x8300として識別されます。
- ^ ab Solaris 上 の GUID は
/usr、macOS では ZFS の汎用 GUID として使用されます。 - ^ ab NetBSD と MidnightBSD は、独自の GUID が作成される前に FreeBSD GUID を使用していました。
- ^ CephファイルシステムはGUIDを使用してディスクの準備状態をマークします。[67] [68]
- ^ 従来のFuchsia GUIDには2つの奇妙な点がありました。UUIDはランダムに生成されず(パーティション間でいくつかのビットの連続が共通でした)、パーティションはGUIDタイプによって一意に識別されました。標準化されたスキームではランダムに生成されたGUIDが使用され、スロットパーティション(例
zircon_{a,b,r})は同じタイプを共有し、名前と一意のGUIDによって区別されます。[83]
参考文献
- ^ ab 「FAQ: ドライブパーティションの制限」(PDF) . www.uefi.org . 2010 . 2020 年12 月 12 日閲覧。
- ^ abc 「Unified Extensible Firmware Interface (UEFI) 仕様」(PDF) . www.uefi.org . 2022年8月29日. p. 110 . 2023年6月23日閲覧。
- ^ Swinburne, Richard (2010 年 4 月 1 日). 「事実: 4K アドバンスド フォーマット ハード ディスク」www.bit-tech.net . 2020 年12 月 12 日閲覧。
- ^ ab ライアン・スミス(2009年12月18日)「ウエスタンデジタルの高度なフォーマット:4Kセクターの移行が始まる」www.anandtech.com。2020年12月28日時点のオリジナルよりアーカイブ。 2020年12月12日閲覧。
- ^ 「Enterprise Capacity 3.5 HDD データシート」(PDF)。Seagate Technology。2014 年 4 月 23 日。p. 2。2014 年 8 月 12 日時点のオリジナルよりアーカイブ(PDF) 。2014年8 月 10 日閲覧。
- ^ 「WD Re Datacenter Distribution 仕様シート」(PDF)。Western Digital。2016 年 1 月 21 日。p. 2。2015 年 9 月 6 日時点のオリジナルよりアーカイブ(PDF) 。2016年2 月 14 日閲覧。
- ^ 「Advanced format (4K) ディスク互換性アップデート (Windows)」。2012年11月28日。2013年1月11日時点のオリジナルよりアーカイブ。2013年1月3日閲覧。
- ^ 「Windows の 4K セクター ハード ドライブに関する Microsoft のサポート ポリシー」。Microsoft。2011年 8 月 19 日時点のオリジナルよりアーカイブ。2013 年10 月 24日閲覧。
- ^ 「UEFI 仕様」。UEFI.org。
- ^ abcd Smith, Roderick (2012年7月3日). 「GPTとLinuxで大容量ドライブを最大限に活用する」IBM . 2020年12月14日閲覧。
- ^ abcd 「テクニカルノート TN2166: GPT の秘密」。Apple Developer。Apple。2006年 11 月 6 日。2014 年 4 月 16日閲覧。
- ^ GPT ヘッダーには、パーティション テーブル エントリの サイズを指定するフィールドが含まれています。必要な最小値は 128 バイトですが、実装では他の値も考慮する必要があります。「Mac Developer Library」を参照してください。Developer.Apple.com。Apple。2014年7月 13 日取得。
- ^ Leach, P.; Mealling , M.; Salz, R. (2005年7月). 「ユニバーサルユニークID (UUID) URN名前空間」。インターネットエンジニアリングタスクフォース。doi : 10.17487/RFC4122。RFC 4122。2020年12月18日閲覧。
{{citation}}: CS1 maint: year (link) - ^ Elliott, Rob (2010年1月4日). 「e09127r3 EDD-4 ハイブリッド MBR ブートコード付録」(PDF) . www.t13.org . 2020年8月20日時点のオリジナル(PDF)からアーカイブ。 2020年12月16日閲覧。
- ^ 「GPT | Microsoft Docs」。2016年8月31日。
- ^ 「CREATE_PARTITION_PARAMETERS (vds.h) - Win32 アプリ | Microsoft Docs」。2023 年 2 月 9 日。
- ^ 「ディスクフォーマット」。Chromium.org 。2022年2月9日閲覧。
- ^ 「MacBook 上の Ubuntu」。コミュニティ ドキュメント。Ubuntu。
- ^ 「GNU Parted FAQ」.
- ^ "mklabel". Parted マニュアル. GNU.
- ^ 「fdisk: GPT サポートを追加」。kernel.org。2013 年 9 月 27 日。2013年 10 月 18 日閲覧。
- ^ Bueso, Davidlohr (2013-09-28). 「fdisk の更新と GPT サポート」 。2013年 10 月 18 日閲覧。
- ^ “DISK_MAX_PARTS 定義”。2020年3月26日時点のオリジナルよりアーカイブ。2020年3月26日閲覧。
- ^ 「Intel Mac に関する神話と事実」。rEFIt。Source forge。
- ^ 「NetBSD 5.0 から 6.0 への重要な変更」。。
- ^ 「NetBSD 5.0 から 6.0 (NetBSD/i386) への重要な変更」。。
- ^ 「NetBSD 5.0 から 6.0 (NetBSD/amd64) への重要な変更」。。
- ^ "OpenBSD 5.9"。。
- ^ 「ZFS ルート ファイル システムからの起動」。Oracle。2011 年 12 月 10 日のオリジナルからアーカイブ。
- ^ "idisk(1M)". ヒューレット・パッカード.
- ^ abcd 「Windows と GPT に関する FAQ」。msdn.microsoft.com。2017年 6 月 1 日。2020 年12 月 14 日に閲覧。
- ^ Windows 8 32 ビットは、GPT ベースのディスクを使用した UEFI ベースの PC (x86-32 のみ) からの起動をサポートしています。
- ^ Windows 8.1 32 ビットは、GPT ベースのディスクを使用した UEFI ベースの PC (x86-32 のみ) からの起動をサポートしています。
- ^ Windows 10 32 ビットは、GPT ベースのディスクを使用した UEFI ベースの PC (x86-32 のみ) からの起動をサポートしています。
- ^ Microsoft は、Windows Server 2003 および Windows XP Professional の 64 ビット版の提供開始に伴い、速度制限を引き上げました。2010 年 11 月 10 日にWayback Machineにアーカイブされました。
- ^ http://windowsenthusiasts1.epizy.com/WindowsXPUEFI.html?i=1 [裸の URL ]
- ^ Windows 8 64 ビットは、GPT ベースのディスクを使用した UEFI ベースの PC (x86-64 のみ) からの起動をサポートしています。
- ^ Windows 8.1 64 ビットは、GPT ベースのディスクを使用した UEFI ベースの PC (x86-64 のみ) からの起動をサポートしています。
- ^ Windows 10 64 ビットは、GPT ベースのディスクを使用した UEFI ベースの PC (x86-64 のみ) からの起動をサポートしています。
- ^ マイクロソフトの「最も奇妙なリリース」:Windows Server 2022 がひっそりと一般公開される
- ^ 「アーカイブコピー」(PDF)。2013年7月28日時点のオリジナル(PDF)からアーカイブ。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ 「F6F: Funtoo Linux と Intel Rapid Start テクノロジー」。Blog.adios.tw。2012 年 10 月 30 日。2014 年 1 月 29 日閲覧。
- ^ GPT fdisk: parttypes.cc、行 198
- ^ abcde 「PARTITION_INFORMATION_GPT - Win32 アプリ」。Microsoft Docs 。2021 年 8 月 21 日閲覧。
- ^ Smith, Rod (2011 年 6 月 23 日). 「Linux GPT GUID タイプ コードが一意である必要がある (PATCH を含む)」. bug-parted (メーリング リスト) . 2016 年4 月 12 日閲覧。
- ^ Sergei Antonov (2014-07-31). 「libfdisk: (gpt) Microsoft Storage Spaces GUID を追加」. util-linux/util-linux.git - util-linux コード リポジトリ. 2021-08-21に取得。
- ^ ストレージレプリカに関する既知の問題
- ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb 検出可能なパーティション仕様 (DPS)
- ^ abcde systemd-gpt-auto-generator(8)
- ^ ホームディレクトリ
- ^ ブートローダー仕様
- ^ ab "[dm-crypt] LUKS GPT GUID". Saout.de. 2014年2月3日時点のオリジナルよりアーカイブ。2014年1月29日閲覧。
- ^ ab "[dm-crypt] LUKS GPT GUID". Saout.de. 2014年2月3日時点のオリジナルよりアーカイブ。2014年1月29日閲覧。
- ^ ab "pyuefi ソースコード"。
- ^ 「udisks-2.7.4 ソースコード」。GitHub。2022年7月10日。
- ^ GNU/Hurd ユーザーズガイド: インストール、インターネットインストール
- ^ HurdとGRUB は実行に同じ Linux ext2 ファイル システムを使用し、"UFS" はサポートされなくなりました。ファイルシステム
- ^ Hurdは同じLinuxスワップファイルシステムを使用しています
- ^ abcdef "FreeBSD システム管理者マニュアル gpart(8)" . 2021年8月21日閲覧。
- ^ 「apm、bsd、gpt、vtoc8 スキームに nandfs のパーティション タイプを追加します。 · freebsd/freebsd-src@f24a822 · GitHub」。GitHub 。2021年 8 月 21 日取得。
- ^ 「src/sys/sys/disklabel_gpt.h の CVS ログ」。Cvsweb.netbsd.org。2014年 1 月 29 日閲覧。
- ^ 「ディスクフォーマット - Chromium プロジェクト」。Chromium.org。2014年 1 月 29 日閲覧。
- ^ 「ディスクフォーマット - Chromium プロジェクト」。Chromium.org。2024年 1 月 18 日閲覧。
- ^ 「定数とID」。CoreOS 。 2018年7月26日閲覧。
- ^ src/add-ons/kernel/partitioning_systems/gpt/gpt_known_guids.h
- ^ http://www.midnightbsd.org/cgi-bin/cvsweb.cgi/src/sys/sys/gpt.h.diff?r1=1.4;r2=1.5 [永久リンク切れ] src/sys/sys/gpt.h
- ^ Ceph ディスクを設定するスクリプト: ceph-disk、76-81 行目
- ^ ceph-disk ラベル
- ^ QNX パワーセーフファイルシステム
- ^ "gpt.ini (github.com/android-ia/device-androidia-mixins)". GitHub。
- ^ "gpt.ini (github.com/android-ia/device-androidia)". GitHub。
- ^ "gpt.ini (github.com/android-ia/vendor_intel_baytrail)"。GitHub。
- ^ "gpt-sample.ini (github.com/android-ia/platform_bootable_userfastboot)". GitHub。
- ^ "gpt_ini2bin.py (android.googlesource.com/platform/hardware/bsp/intel)".
- ^ 「gpt.c ( github.com/android-ia/platform_bootable_userfastboot)」。GitHub。
- ^ 「gpt_ini2bin.py ( github.com/android-ia/vendor_intel_common)」。GitHub。
- ^ 「ブートローダー仕様」。freedesktop.org 。 2017年1月5日閲覧。
- ^ 「SPDK ブロックデバイス ユーザーガイド」 。2021年 1 月 20 日閲覧。
- ^ 「Barebox State Framework」。2021年5月21日閲覧。
- ^ Villemoes, Rasmus (2020-11-17). 「RFC: U-Boot 環境のパーティション タイプ GUID」. U-Boot メーリング リスト(メーリング リスト) . 2021-09-28に取得。
- ^ “U-boot 2021.07 ソースコード: include/part_efi.h”. 2020年11月20日. 2021年9月28日閲覧。
- ^ ab zircon/system/public/zircon/hw/gpt.h
- ^ 「[paver] 新しいパーティションスキームのサポートを追加」。2021年10月22日閲覧。
外部リンク
- Microsoft TechNet: GPT ディスク上のディスク セクター (アーカイブ ページ)
- Microsoft Windows 展開: データ損失なしで MBR を GPT に変換する
- Microsoft TechNet: ディスクとファイル システムのトラブルシューティング
- Microsoft TechNet: GPT ドライブの使用
- Microsoft: Windows での GPT ディスクの使用に関する FAQ
- Microsoft Technet: 基本ディスクとボリュームの仕組み 少し MS 固有ですが、GPT を古い MBR 形式および保護 MBR に関連付ける優れた図、完全なディスクのレイアウト、およびパーティション テーブルの 16 進ダンプの解釈方法を示します。
- Apple Developer Connection: GPT の秘密
- GPTとLinuxで大容量ドライブを最大限に活用する
- Windows Vista SP1+ または 7 x86_64 ブートを再インストールせずに BIOS-MBR モードから UEFI-GPT モードに変換する
- Microsoft Windows XP での GPT (パーティション スキーム) と 2.19 TB を超える HDD のサポート
- Linux で 2TB を超えるディスクの RAID ボリュームを設定する
