拡張ブートレコード( EBR ) [ 1 ]または拡張パーティションブートレコード( EPBR ) [注 1 ]は、一般的な DOS ディスクドライブのパーティション分割システムにおける論理パーティションの記述子です。このシステムでは、マスターブートレコード(MBR)内のパーティションレコードエントリが 1 つ (かつ 1 つだけ)拡張パーティションとして指定されている場合、そのパーティションは複数の論理パーティションに分割できます。その拡張パーティションの実際の構造は、拡張パーティション内に存在する 1 つ以上の EBR によって記述されます。最初の (そして場合によっては唯一の) EBR は、常に拡張パーティションの最初のセクタに配置されます。
プライマリ パーティションは MBR 内の単一のパーティション テーブルで記述されるため数が制限されますが、EBR はそれぞれ、それが記述する論理パーティションの前に配置されます。 [注 2 ]別の論理パーティションが続く場合、最初の EBR には次の EBR を指すエントリが含まれます。したがって、複数の EBR がリンク リストを形成します。[注 3 ]これは、拡張パーティション内に形成できる論理ドライブの数が、その拡張パーティションで使用可能なディスク スペースの量によってのみ制限されることを意味します。[注 4 ]
Windows XPまでのバージョンでは、拡張パーティション内の論理パーティションは「ドライブジオメトリ」または「CHS」と呼ばれる規則に従って配置されていましたが、Windows Vista以降では 1 MiB 境界に配置されています。この配置の違いにより、 XP の論理ディスクマネージャ(ディスクの管理) は、警告なしにこれらの拡張パーティションを削除する可能性があります。[ 2 ]
EBRは基本的にMBRと同じ構造ですが、パーティションテーブルの最初の2つのエントリのみが使用されることに加え、セクターの最後に必須のブートレコード署名(またはマジックナンバー)0xAA55が存在します。 [ 1 ] この2バイトの署名は、ディスクエディタでは0x55が最初、0xAAが最後として表示されます。これは、IBM互換PCが16進ワードをリトルエンディアン順に格納するためです(下の表を参照)。
IBM Boot Manager(OS/2オペレーティングシステムおよび一部の初期バージョンのPartition Magicに付属)は、各EBRセクターに少なくとも1つの9バイトのエントリ(オフセット0x18Aから始まる)を追加します。このエントリは、フラグ値バイト(パーティションがIBM Boot Managerメニューにあるかどうかを示す)と、メニューで使用される名前である8バイトのASCII文字列で構成されます。パーティションがブートメニューに含まれていない場合(データ専用パーティションなど)、フラグバイトはゼロになります。この場合、続く8バイトのフィールドには、そのパーティションの開始セクター番号のASCII表現(16進数)が含まれることがあります。
拡張パーティションのパーティションタイプは、0x05 (CHS アドレス指定) または 0x0F (LBA アドレス指定) です。[ 4 ] DR DOS 6.0以降は、他のオペレーティング システムからは見えない0xC5を使用したセキュアな拡張パーティションをサポートしています。7.03 までの LBA 非対応バージョンの DR-DOS は0x0Fパーティションタイプを認識せず、他のオペレーティングシステムは0xC5タイプを認識しないため、これを利用して DR-DOS で使用するためにディスクの最初の 8 GB までの領域を占有し (セキュアまたは非セキュアなパーティションの論理ドライブ用)、残りのディスク領域を LBA 対応のオペレーティングシステム用に競合しない方法で割り当てるために0x0Fを使用することもできます。同様に、 Linux はタイプ0x85の2 番目の拡張パーティションチェーンの概念をサポートしています。このタイプは、 1 つのチェーンのみをサポートする他のオペレーティングシステムでは非表示(不明) です。[ 5 ] EBR を格納できるその他の拡張パーティション タイプには、意図的に隠蔽されたタイプ0x15、0x1F、0x91、0x9B、アクセス制限のあるタイプ0x5E、0x5F、およびセキュリティ保護されたタイプ0xCF、0xD5があります。ただし、これらはそれらをサポートするオペレーティングシステムとツールに対してプライベートに扱われるべきであり、それ以外の場合はマウントすべきではありません。
パーティションのCHSアドレスは、(仮想) ディスク ジオメトリの知識がないと解釈が困難です。これは、 CHS から LBA への変換が、トラックあたりのヘッド数とセクタ数に基づいているためです。ただし、指定された LBA 開始アドレスとセクタ数で指定されたパーティション サイズにより、可能な限り指定された CHS アドレスに一致するディスク ジオメトリを計算できます。24 ビットの CHS アドレス指定では、トラックあたり最大 63 セクタ (1〜63) まで常に 6 ビットを使用し、INT 13hディスク アクセスでは、通常、最大 256 ヘッド (0〜255) まで 8 ビットを使用し、最大 1024 シリンダ (0〜1023) まで 10 ビットが残ります。ATA CHSアドレスでは、最大 16 ヘッド (0〜15) まで常に 4 ビットを使用し、ATA-5 24 ビット CHS アドレス変換では、最大 16,383 シリンダ ( {{{1}}} ) まで 14 ビットが残ります。[ 6 ]
以下は、EBRのパーティションテーブルエントリの4バイトフィールドの値にのみ適用される一般的なルールです(上記の表を参照)。これらの値は、作成または変更に使用されるパーティショニングツールによって異なります。実際、拡張パーティショニング方式を使用するほとんどのオペレーティングシステム(Microsoft MS-DOS、Windows、Linuxなど)は、別のEBRセクターを指すエントリの「パーティションサイズ」値を無視します。ただし、Linuxオペレーティングシステムでは、この値は1以上でなければなりません。
EBRパーティションテーブルの最初のエントリは、そのEBRに属する論理パーティションを指します。
EBRパーティションテーブルの2番目のエントリは、それが拡張パーティション内の最後のEBRである場合はゼロバイトを含み、そうでない場合はEBRチェーン内の次のEBRを指します。


注記: 上記の図は縮尺どおりではありません。各「EBR」とその論理的な「パーティション」の間の細い白い線は、通常63セクター[注2 ]の長さの未使用領域の残りを表しています。これには、単一のEBRセクター(非常に誇張されたサイズで表示)が含まれます。
システムによっては、以前に作成された論理パーティションが削除またはサイズ変更(縮小)された場合、論理パーティションの末尾と次の EBR の間、または最後の論理パーティションと拡張パーティション全体の末尾の間に、未使用の大きなギャップが存在する場合があります。
上記に示したEBRとパーティションのインターリーブは典型的な例ですが、必須ではありません。2つ以上の連続するEBRの後に、2つ以上のパーティションデータ領域が続く構成も問題ありません。
Linuxや同様のオペレーティングシステムでは、 IDEハードディスクを/dev/hda、1番目のハードディスク、/dev/hdb2番目のハードディスク、といったように識別します。同様に、 SCSIや、後のカーネルではIDEおよびSATAハードディスクも、/dev/sda1番目のディスク、といったように識別されます。
マスターブートレコードで定義されている最大 4 つのパーティションは、/dev/hda1.../dev/hda4として指定されます/dev/hda。このスキームでは、たとえば 5 番目のパーティションは、/dev/hda5最初の論理ドライブに対応します。6 番目のパーティションは、 /dev/hda62 番目の論理ドライブに対応することになります。つまり、拡張パーティションコンテナーはカウントされません。このスキームでは、MBR で定義されている最も外側の拡張パーティション ( /dev/hda1...のいずれか/dev/hda4) のみが名前を持ちます。[ 7 ]
これは、6,000セクターと3つの論理パーティションを持つ拡張パーティションを示しています。注:わずか3MB の小さな拡張パーティションや、トラックあたり20セクターのハードドライブは現実的ではありませんが、この例をより分かりやすくするためにこれらの値を選択しました。

以下のコマンドラインツールの出力は、2 つの論理ドライブを持つディスクのレイアウトを示しています。FATおよびNTFSパーティションの詳細は省略されており、 Linuxと注釈が付けられた行は拡張ファイルシステムを使用しています。 の冒頭は、関連するオペレーティングシステムであるPC DOS 7、Windows NT、およびDebian が、ギャップのある拡張パーティションアライメントを要求しないことを示しています。/dev/hda6/dev/hda5
\\.\PHYSICALDRIVE0 (ジオメトリ CHS 99999 255 63 を想定) ID. [3189-3188] MBR CHS 0 0 1 (アドレス 0、終了 0 0 1、サイズ 1) 未使用のCHS 0 0 2 (1)、終了 0 0 63、サイズ 62 1:*06: CHS 0 1 1 at 63、end 260 254 63、size 4192902 bigFAT 2:05: CHS 261 0 1 at 4192965、end 757 254 63、size 7984305 => EXT 3: 17: CHS 758 0 1 (12177270)、終了 1522 254 63、サイズ 12289725 NTFS 4: 1C: CHS 1523 0 1 (24466995)、終了 1825 254 63、サイズ 4867695 FAT32 (拡張オフセット4192965)合計29334690 => EXT CHS 261 0 1 at 0、end 261 0 1、size 1 5:06: CHS 261 0 2 at 1、end 384 254 63、size 1992059 bigFAT 6:05: CHS 385 0 1 at 1992060、end 757 254 63、size 5992245 => EXT (拡張オフセット 6185025)合計 7984305 => EXT CHS 385 0 1 at 0、end 385 0 1、size 1 未使用のCHS 385 0 2(1番)、端385 0 63、サイズ62 6: 83: CHS 385 1 1 at 63、end 757 254 63、size 5992182 Linux 7:00: CHS 0 0 0 at 0、end 0 0 0、size 0 未使用 合計 5992245 bigFAT CHS 0 1 1 at 63、end 260 254 63、size 4192902 PC DOS 7 (クラスタサイズ 64、番号 65506) 合計 4192902 NTFS CHS 758 0 1 (12177270)、終了 1522 254 63、サイズ 12289725 [1C81-013D] (クラスターサイズ 8、番号 1536215) 合計 12289725 FAT32 CHS 1523 0 1 (24466995)、終了 1825 254 63、サイズ 4867695 [C417-9E22] (クラスターサイズ 8、番号 607271) 合計 4867695 bigFAT CHS 261 0 2 at 4192966、end 384 254 63、size 1992059 FAT SWAP(クラスターサイズ32、番号62236)合計1992059
別の例については、「LinuxパーティションHOWTO」を参照してください。[ 8 ]
[0x05 s]最大 8.4 GB のディスクをサポートします。タイプ 05 の場合、DOS/Windows は、利用可能であっても拡張 BIOS コールを使用しません。以下のタイプ 0f を参照してください。8 GB を超える拡張パーティションにタイプ 05 を使用すると、MS-DOS でデータが破損する可能性があります。