拡張ブートレコード( EBR ) [ 1]または拡張パーティションブートレコード( EPBR ) [注 1]は、一般的な DOS ディスクドライブパーティションシステムにおける論理パーティションの記述子です。そのシステムでは、マスターブートレコード(MBR)内の 1 つの (そして唯一の) パーティションレコードエントリが拡張パーティションに指定されている場合、そのパーティションは複数の論理パーティションに分割できます。その拡張パーティションの実際の構造は、拡張パーティション内にある 1 つ以上の EBR によって記述されます。最初の (そして場合によっては唯一の) EBR は、常に拡張パーティションの最初のセクターに配置されます。
プライマリ パーティションはすべてMBR 内の単一のパーティション テーブルで記述され、したがって数が制限されるのに対し、各 EBR はそれが記述する論理パーティションの前にあります。 [注 2]別の論理パーティションが続く場合、最初の EBR には次の EBR を指すエントリが含まれます。したがって、複数の EBR がリンク リストを形成します。[注 3]つまり、拡張パーティション内に形成できる論理ドライブの数は、特定の拡張パーティションで使用可能なディスク領域の量によってのみ制限されます。[注 4]
XPまでのWindowsバージョンでは、拡張パーティション内の論理パーティションは「ドライブ ジオメトリ」または「CHS」と呼ばれる規則に従って配置されていましたが、Windows Vista以降では1 MiB 境界に配置されるようになりました。この配置の違いにより、 XP の論理ディスク マネージャー(ディスクの管理) は、これらの拡張パーティションを警告なしに削除することがあります。[2]
EBRの構造と価値
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 文字列で構成されます。パーティションがブート メニューに含まれていない場合 (データのみのパーティションなど)、フラグ バイトは 0 です。その場合、次の 8 バイト フィールドに、そのパーティションの開始セクター番号 (16 進数) の ASCII 表現が含まれることがあります。
拡張パーティションのパーティションタイプは、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 アドレス指定では、常に 6 ビットを使用してトラックあたり最大 63 セクター (1...63) を使用し、INT 13hディスク アクセスでは通常、8 ビットを使用して最大 256 ヘッド (0...255) を使用し、10 ビットを使用して最大 1024 シリンダ (0...1023) に使用します。ATA CHS アドレスでは、常に 4 ビットを使用して最大 16 ヘッド (0...15) を使用し、 ATA -5 24 ビット CHS アドレス変換では 14 ビットを使用して最大 16,383 シリンダ ( {{{1}}} ) に使用します。[6]
価値観
以下は、EBR のパーティション テーブル エントリの 4 バイト フィールドにある値にのみ適用される一般的なルールです (上記の表を参照)。これらの値は、作成または変更に使用されるパーティション ツールによって異なります。実際、拡張パーティション スキームを使用するほとんどのオペレーティング システム (Microsoft MS-DOS、Windows、Linux など) では、別の EBR セクターを指すエントリの「パーティション サイズ」値は無視されます。1 つの例外として、Linux オペレーティング システムでは、値は 1 以上である必要があります。
EBR パーティション テーブルの最初のエントリは、そのEBR に属する論理パーティションを指します。
- 開始セクター = この EBR セクターと論理パーティションの最初のセクター間の相対オフセット
- 注: 多くの場合、この値は同じハード ディスク上の各 EBR に対して同じです。通常、Windows XP 以前では 63 です。
- セクター数 = この論理パーティションのセクターの総数
- 注意: EBRと論理ドライブ間の未使用セクターは論理ドライブの一部とはみなされません。[1]
EBR パーティション テーブルの2 番目のエントリは、拡張パーティション内の最後の EBR の場合は 0 バイトを含みます。それ以外の場合は、EBR チェーン内の次の EBR を指します。
- パーティションタイプコード = 0x05(CHSアドレス指定)または0x0F(LBAアドレス指定)。[4]
- つまり、パーティションに有効なパーティション タイプが必要であるのと同様に、EBR にも有効なパーティション タイプが必要です。
- 開始セクター = 拡張パーティション内の次の EBR の相対アドレス
- 言い換えると、開始セクター =次の EBR のLBAアドレスから拡張パーティションの最初のEBRの LBA アドレスを引いた値です。
- セクター数 = 次の論理パーティションのセクターの総数。ただし、カウントは次の EBR セクターから始まります。
- 注: EBR のパーティション テーブルの最初のエントリとは異なり、このセクター数には、次の論理パーティションの EBR セクターと、それ以外の未使用のトラック内の他のセクターが含まれます。(下の図 1 と 2 を比較してください。)
注:
上記の図は縮尺が正確ではありません。各「EBR」とその論理「パーティション」間の細い白い線は、未使用領域の残り部分を表します。通常、長さは 63 セクター[注 2]で、これには単一の EBR セクター (非常に誇張されたサイズで表示)が含まれます。
一部のシステムでは、以前に作成された論理パーティションが削除またはサイズ変更(縮小) された場合、論理パーティションの末尾と次の EBR の間、または最後の論理パーティションと拡張パーティション全体の末尾の間に、未使用の大きなギャップが存在することがあります。
上記の EBR とパーティションのインターリーブは一般的ですが、必須ではありません。2 つ以上の連続した EBR の後に 2 つ以上のパーティション データ領域が続くことは適切です。
ネーミング
Linuxや類似のオペレーティング システムでは、 IDEハード ディスクを/dev/hda最初のハード ディスク、/dev/hdb2 番目のハード ディスクなどとして指定します。同様に、 SCSI/dev/sdaおよびそれ以降のカーネルでも、IDE および SATA ハード ディスクは最初のディスクなど
として識別されます。
マスターブートレコードで定義される最大4つのパーティションは、/dev/hda1...として指定されます。このスキームの5番目のパーティション、たとえば、は最初の論理ドライブに対応します。6番目のパーティションは2番目の論理ドライブに対応します。つまり、拡張パーティションコンテナはカウントされません。このスキームでは、MBRで定義されている最も外側の拡張パーティション(...の1つ)にのみ名前が付けられます。[7]/dev/hda4/dev/hda/dev/hda5/dev/hda6/dev/hda1/dev/hda4
例
これは、6,000 セクターと 3 つの論理パーティションを持つ拡張パーティションを示しています。
注: わずか 3 MBの小さな拡張パーティションや、トラックあたり 20 セクターのハード ドライブは現実的ではありませんが、これらの値は、この例をわかりやすくするために選択されています。
スナップショット
コマンドラインツール[ which? ]の次の出力は、2 つの論理ドライブを持つディスクのレイアウトを示しています。FATおよびNTFSパーティションの詳細は削除され、 Linuxで注釈が付けられた行は/dev/hda6拡張ファイルシステムです。 の先頭は、/dev/hda5関連するオペレーティングシステムPC DOS 7、Windows NT、およびDebian がギャップのある拡張パーティションの配置を要求しないことを示しています。
\\.\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 63、終了 260 254 63、サイズ 4192902 bigFAT
2: 05: CHS 261 0 1 4192965、終了 757 254 63、サイズ 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 0、終了 261 0 1、サイズ 1
5:06: CHS 261 0 2 at 1、終了 384 254 63、サイズ 1992059 bigFAT
6:05: CHS 385 0 1 1992060、終了 757 254 63、サイズ 5992245 => EXT
(拡張オフセット 6185025) 合計 7984305
=> EXT CHS 385 0 1 0、終了 385 0 1、サイズ 1
未使用 CHS 385 0 2 at 1、終了 385 0 63、サイズ 62
6: 83: CHS 385 1 1 63、終了 757 254 63、サイズ 5992182 Linux
7:00: CHS 0 0 0 0、終了 0 0 0、サイズ 0 未使用
合計 5992245
bigFAT CHS 0 1 1 63、終了 260 254 63、サイズ 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 4192966、終了 384 254 63、サイズ 1992059
FAT SWAP (クラスタサイズ 32、数 62236) 合計 1992059
別の例については、「Linux Partition HOWTO」を参照してください。[8]
脚注
- ^この用語は、拡張パーティション情報を表示するときに、 PowerQuest (現Symantec ) の診断ソフトウェア プログラム (PartitionInfo ユーティリティ ( Partition Magicに付属) など)で使用されます。
- ^ ab EBR は、 未使用領域の最初のセクターに配置されます。このセクター数は、トラックあたりのセクター数(通常は 63 セクター) に等しくなります。この点で、各論理パーティションは、最初のプライマリ パーティションのハード ディスク構造のレイアウトを模倣します。これは、 MBRがディスクの最初のセクター、トラック 0 の最初のセクター (通常は 62 個の未使用セクターが続く)、そして最初のプライマリ パーティションのブート セクターに配置されるためです。
- ^ したがって、すべての論理ドライブ パーティションにアクセスしたり列挙したりする必要があるオペレーティング システムまたはユーティリティ プログラムは、エントリが 1 つだけ含まれる最後の EBR が読み取られるまで、このエントリチェーンに従う必要があります。
- ^ ほとんどの DOS および以前の Windows オペレーティング システムでは、拡張パーティション内の論理ドライブの数は23 に制限されていました。これは、 FDISKプログラムがドライブ文字を割り当てられる以上のドライブを作成できなかったためです。したがって、C: がプライマリ ドライブであると仮定すると、DOS ドライブ文字 D: から Z: では、23 以上のドライブしか作成できません。DR -DOS FDISK では、パーティションをドライブ文字に関連付けないため、この制限はありません (プライマリ パーティションを除く)。セキュリティ保護されたボリュームや圧縮されたボリューム、マルチプラットフォームのサポートなどの高度な機能により、ドライブ文字の割り当てルールがより複雑になり、FDISK 内でドライブ文字をパーティションに関連付けることは非現実的または誤解を招く可能性があります。また、DR-DOS FDISK はパーティションを作成するだけでなく、新しく作成されたパーティションをフォーマットするため、対応するドライブ文字を知ることはそれほど重要ではありません。さらに、Novell DOS 7 以降では、 LASTDRIVE =32 CONFIG.SYSディレクティブを使用して、最大 32 のボリュームを公式にサポートしています。 Windows NT 以降では、コンピュータの管理のディスク管理拡張機能を使用して、無制限の数の論理パーティションを作成できます。ただし、実際には、Windows NT シェル (ユーザー インターフェイス) は、A: から Z: のドライブ文字を持つドライブにしかアクセスできないため、ユーザーが 23 を超えるパーティションを作成することはほとんどありませんでした。Windows の新しいリリースでは、文字ではなく、別のファイル システム内のパスへのパーティションのマウントを Unix のようにサポートし、\\?\Volume{ uuid }\などの UNC スタイルのパスも許可しています。
参照
- マスターブートレコード(MBR)
- ボリューム ブート レコード(VBR)
- ディスクのパーティション分割
- BSD ディスクラベル
- 論理ブロックアドレス(LBA)
- ディスクエディタ
- パーティションの配置
- 論理ディスク マネージャー
参考文献
- ^ abc 「ディスクの概念とトラブルシューティング」。Windows 2000 Web およびアプリケーション サービスの技術概要。Microsoft Technet。2000年。2011 年 7 月 19 日に取得。
- ^ 「Windows XP と Windows Vista の両方がインストールされているコンピューターで Windows XP を使用してパーティションを作成すると、Windows Vista をホストするパーティションが消える場合があります」。Microsoftサポート。2007 年 12 月 2 日。2015年 8 月 29 日取得。
- ^ ab 「ディスクとファイル システムのトラブルシューティング」。Windows XP リソース キット。Microsoft TechNet。2005年 11 月 3 日。2011年 9 月 15 日に取得。
- ^ ab Andries E. Brouwer (2011). 「PC のパーティション識別子のリスト」。2011-07-19取得。
[0x05 s] は最大 8.4 GB のディスクをサポートします。タイプ 05 では、DOS/Windows は拡張 BIOS 呼び出しが使用可能であっても使用しません。以下のタイプ 0f を参照してください。8 GB を超える拡張パーティションにタイプ 05 を使用すると、MSDOS でデータ破損が発生する可能性があります。
- ^ Andries Brouwer ( 2004 ). 「拡張パーティションと論理パーティション」。Large Disk HOWTO。2011-07-19閲覧。
- ^ 「ATA-5」(PDF) . T13/1321D . INCITS技術委員会 T10 SCSI ストレージ インターフェイス。2000 年。2011 年 7 月 28 日のオリジナル(PDF)からアーカイブ。2011年 7 月 30 日に取得。
- ^ Juergen Haas. 「拡張パーティション」. linux.about.com . 2016 年 5 月 10 日時点のオリジナルよりアーカイブ。2011 年 7 月 19 日閲覧。
- ^ Anthony Lissot (2005). 「fdisk によるパーティション分割」Linux Partition HOWTO リビジョン 3.5 。2011 年 7 月 19 日閲覧。
