マスターブートレコード
出典: フリー百科事典『ウィキペディア(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であろうが関係ない。 しかし、LILOやGRUBなどをこの領域に上書きして独自のブートプロセスを踏むことも出来る。
[編集] ブートストラップローダの内容
- パーティションテーブルを4つのテーブルエントリーの先頭から検査し、起動フラグが立っている基本領域がないか探す。
- 起動フラグの立っている基本領域が見つかったらその領域の先頭位置をパーティションテーブルから取得する。
- 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は無効なものとして扱われる。
[編集] ブートレコードの復元
[編集] WindowsNT、Windows2000、WindowsXPの場合
回復コンソールでfixmbrと実行すれば良い。または、WindowsのCD-ROMで起動しRキーで修復すればよい。
[編集] MS-DOS、Windows95、Windows98/98SE、Windows Meの場合
FDDから起動し、C:>fdisk /mbr と実行すれば良い。

