パソコン実習室
ハードディスクの構造とパーティション
≪ previous next ≫

W.MBR (Master Boot Recode)

 ハードディスクの先頭には、MBR (Master Boot Recode) と呼ぶ特別なセクタが設けられる。
MBR には、アクティブ パーティションを検索して起動するためのプログラムコード (Boot Strap Loader) と、パーティションの情報を格納するパーティション テーブルが置かれる。

W.1.MBR の構成

 MBR のサイズは 1 セクタ (512バイト) であり、その構成は次の通り。

位置 (offset)適用サイズ (バイト)
0x0000Boot Strap Loader446
0x01BEパーティション テーブル116
0x01CEパーティション テーブル 216
0x01DEパーティション テーブル 316
0x01EEパーティション テーブル 416
0x01FEboot signature2
  • Boot Strap Loader
    BIOS から起動される最初のプログラム。
    パーティション テーブルを参照して起動可能なパーティションの先頭セクタ (ブートセクタ)をメモリ上にロードし、そこに書かれている IPL (Initial Program Loader) に制御を渡す。
  • パーティション テーブル
    16 バイト構成のテーブルが 4 エントリー分用意される。
    このテーブルの数が基本領域数の制限となる。
  • boot signature
    MBR が正当なものであることの署名 (0x55AA) が書かれている。
    この位置に、この値がないと MBR は無効なものとして扱われ、BIOS による起動処理が行われない。

W.2.パーティション テーブルの構成

 MBR に 4 つあるパーティション テーブルは、それぞれ 16 バイトであり、その構成は次の通り。

位置 (offset)適用サイズ (バイト)
0x00起動 (アクティブ) フラグ1
0x01パーティション開始位置 (CHS方式)3
0x04パーティション タイプ1
0x05パーティション終了位置 (CHS方式)3
0x08開始セクタ番号 (LBA方式)4
0x0Cパーティション サイズ (LBA方式)4
  • 起動 (アクティブ) フラグ
    当該パーティションからの起動の可否。 値によって次の意味になる。
     0x00:起動不可,  0x80:起動可。
    起動フラグが 0x80 の状態のことを「アクティブである」という。
  • パーティション開始位置
    パーティションの開始位置を、Cylinder, Head, Sector で指定する。 3 バイトをビット分割し、右図のように割り当てる。

    右図の例では、Cylinder=0, Head=1, Sector=1 が指定されている。
    ▼ CHS 方式による指定方法はすでに限界 (504MB or 8GB) に達している。
    ▼ 限界を超えたパーティションの場合、実際のパーティション開始位置の値は 0xFE 0xFF 0xFF が設定され
       ている。 これはそれぞれの最大値で、Cylinder=1023, Head=254, Sector=63 を意味するが、実際には無意
       味な値となっている。
  • パーティションタイプ
    パーティションタイプはシステム ID、OS インジケータとも呼ばれ、そのパーティションを使用している OS の種類、またはファイル システム等を数値で表す。
    主なパーティションタイプを以下に示す。
    タイプタイプ
    0x00空き0x63UNIX SystemX
    0x01FAT12 (DOS)0x82Linux Swap, Solaris
    0x04FAT16 (32MB 以下)0x83Linux 基本 (ext2)
    0x058GB 以前の位置に終始する拡張領域0x85Linux 拡張パーティション
    0x06FAT16 (32MB 以上)0x86NTFS RAID の第2区画以降
    0x07NTFS, HPFS (OS/2)0x87NTFS RAID の第1区画
    0x0BFAT320xA5Free BSD
    0x0CFAT32X (LBA)0xA6Open BSD
    0x0EFAT16X (LBA)0xA7NextStep
    0x0F0x05 に該当しない拡張領域  
  • パーティション終了位置
    パーティションの終了位置を、Cylinder, Head, Sector で指定する。 詳細はパーティション開始位置と同じ。
  • 開始セクタ番号 (LBA 方式)
    パーティションの開始位置を、LBA 方式のセクタ番号で指定する。
     LBA 方式 : ハードディスクの先頭セクタ (Cylinder 0, Head 0, Sector 1) を "0" とした場合の通し番号。
  • パーティション サイズ (LBA 方式)
    当該パーティションの総セクタ数。 LBA 方式時に参照される。



≪ previous [[ ハードディスクの構造とパーティション ]] next ≫