MBR

MBRマスターブートレコード

  • HDDの先頭セクタ。(PC/AT互換機の場合512Bの領域。)
  • HDD内に収められたOSの起動に関する情報が記録されており、パソコンの起動時に最初に読み込まれる。

MBRの構成

  • 000〜445:プログラム領域(ブートストラップローダ)
  • 466〜509:パーティションテーブル(16byte/1エントリ×4エントリ=64byte)
  • 510〜511:ブートシグニチャ(0xAA55の値)

パソコンの起動手順


 電源投入
  ↓
 BIOS
  | ┌−−−−−−−−−−−−−−−−−−−−−−−− HDD −−−┐
  | ├−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−┤
  └→MBR
├ブートストラップローダ |
| ↓ |
パーティションテーブル |
| |    |
| ├IPL(イニシャルプログラムローダ) |
| |  |
| | ┌−−−−−−−−−−−−パーティション−−|
| | | |
| ├─→ブートセクタ(PBR)─ブートストラップローダ→OS|
| | │ |
| | ├−−−−−−−−−−−−パーティション−−|
| | | |
| ├─→ブートセクタ(PBR)─ブートストラップローダ→OS|
| | | |
| | ├−−−−−−−−−−−−パーティション−−|
・ ・ ・ ・
・ ・ ・ ・
└−−−−−−−−┴−−−−−−−−−−−−−−−−−−−−−┘

IPL(イニシャルプログラムローダ)

  • コンピュータ起動時に最初に読み込まれ以後のOSの起動を行うプログラム。

ブートストラップローダ

  • OSをディスクから読み込んで起動するプログラム。
    →上図における、MBRとブートセクタ(PBR)の位置に配置される。

MBRにはブートローダの全てが入っているわけではなく、NTLDRやGRUBの機能の一部がインストールされているだけである。

種類

Windows
  • NT OS Loader(NTLDR)


MBR のブートストラップローダは、起動時にアクティブな基本パーテーションの先頭にあるパーテーションブートセクタを読み込み、そのブートプログラムを読み込む。しかし、そのブートプログラムが2台目のハードディスクのものであっても、1台目にOS Loaderを探しにいってしまうので、NT OS Loaderは必ず1台目のハードディスクの基本パーテーションにインストールされていなければいけない。

パーティションテーブル

パーティションテーブルの構成
  1. ブートフラグ(1byte)
    →OSの起動ができるアクティブパーティションかどうかを示す。(0x00 or 0x80)
  2. パーティションの開始位置(CHS, 3bytes)
    →CHS(シリンダー、ヘッド、セクター)値による開始位置。
  3. パーティションタイプ(1bytes)
  4. パーティションの終了位置(CHS, 3bytes)
    →CHS(シリンダー、ヘッド、セクター)値による終了位置。
  5. パーティションの開始位置(LBA, 4bytes)
    →ディスク先頭からのパーティションまでの距離を表すオフセット。
  6. パーティションの総セクタ数(LBA, 4bytes)
    パーティション容量を表す総セクタ数。(5と併せてLBA(Logical Block Address)値表現になる。)

ブートシグニチャ