マスターブートレコード

出典: フリー百科事典『ウィキペディア(Wikipedia)』

マスターブートレコードの構造
アドレス 内容 サイズ
Hex Dec
0000 0 ブートストラップローダ 446
01BE 446 パーティションテーブル
64
01FE 510 55h ブートシグニチャ;
0xAA55
2
01FF 511 AAh
MBRサイズ 512

マスターブートレコード(Master Boot Record、略称MBR)とは、ハードディスクドライブの先頭セクタのこと。

PC/AT互換機の場合ここの長さは512バイトで、0(先頭セクタ)~445バイトはブートストラップローダ、446~509バイトはパーティションテーブル、510~511バイトはブートシグニチャがそれぞれ格納されている。

目次

[編集] ブートストラップローダ

ブートストラップローダ用の領域には通常IBMマイクロソフトが作成した起動プログラムが入っている。これは基本的にOSがWindowsであろうがLinuxであろうが関係ない。 しかし、LILOGRUBなどをこの領域に上書きして独自のブートプロセスを踏むことも出来る。

[編集] ブートストラップローダの内容

  1. パーティションテーブルを4つのテーブルエントリーの先頭から検査し、起動フラグが立っている基本領域がないか探す。
  2. 起動フラグの立っている基本領域が見つかったらその領域の先頭位置をパーティションテーブルから取得する。
  3. BIOSにその位置を示してメモリにロードしてもらい、制御を受け渡す。

[編集] 名称について

実はこのプログラムの正式な名称というのは存在しない。マスターブートローダ、マスターブートコード、イニシャル・プログラム・ローダ(IPL)などと呼ばれることもある。 しかし通常はこの「ブートストラップローダ」と呼ばれる。

[編集] パーティションテーブル

パーティションに関する情報を記録している。4つのエントリがあり1つあたり16バイトである。各エントリにはそのパーティションの位置情報、種類、起動フラグが記録されている。

各エントリの構造
オフセット 内容
0x00 (1 byte) フラグ (0x80 = ブート可, 0x00 = ブート不可)
0x01 (3 bytes) パーティションの最初のセクタ。CHS 方式での値。
0x04 (1 byte) パーティションの種類
0x05 (3 bytes) パーティションの最後のセクタ。CHS 方式での値。
0x08 (4 bytes) パーティションの最初のセクタ。LBA 方式での値。
0x0C (4 bytes) パーティションの全セクタ数

[編集] パーティションの種類

パーティションの種類
0x00 空のパーティション
0x01 FAT12
0x04 FAT16 (32MB以下)
0x06 FAT16 (32MBより大きいとき)
0x07 NTFS
0x0B FAT32

[編集] ブートシグニチャ

ここには0xAA55という値がマジックナンバーとして必ず入っている。これはこのMBRが有効であるという署名のようなもので、これがない場合はこのMBRは無効なものとして扱われる。

[編集] ブートレコードの復元

[編集] WindowsNTWindows2000WindowsXPの場合

回復コンソールでfixmbrと実行すれば良い。または、WindowsのCD-ROMで起動しRキーで修復すればよい。

[編集] MS-DOSWindows95Windows98/98SEWindows Meの場合

FDDから起動し、C:>fdisk /mbr と実行すれば良い。

[編集] 関連項目