jou4のブログスマートフォン用の表示で見るjou4のブログこの広告は、90日以上更新していないブログに表示しています。Table)のパーティションエントリを読むコードを書きました。GPTの構成はざっくりと以下のとおり。(詳細はWikiを参照のこと。)LBA0は事故防止のため従来のMBR。LBA1はパーティションテーブルヘッダー。ディスクのGUIDやヘッダー自身の位置、チェックサム、セカンダリGPTの位置を持っている。LBA33はパーティションエントリ。各パーティションの位置やタイプを持っている。1つのLBAにつき4つのエントリが書き込まれている。したがって最大128エントリ。ディスク末尾にはセカンダリGPTがバックアップとして書き込まれている。プライマリGPTのチェックサムが不正だった場合に使用される。今回はMBRやパーティションテーブルヘッダーの解析は行わず、パーティンションエントリに対象を絞りました。bytesで先頭からの構成は以下のとおり。パーティション名、UTF-16LEパーティションエントリのタイプを示すGUIDの一覧は下記のページを参考にしました。日本語版のWikiには欠落しているものがいくつかありました。いう形式ですが、最初の3つの項目はリトルエンディアンで書き込まれているため注意が必要です。先頭/最後のLBAからディスク上の位置やサイズが把握できます。属性フラグとパーティション名は解析しませんでした。