■ | Windows.FAQ - 基礎講座:PC の起動する仕組みは?マスターブートレコード (MBR) やブートセクターって何? |
このページでは、PC が起動する仕組みと、起動に必要なマスターブートレコード (MBR) やブートセクターについて解説します。
複数 OS を導入する場合や、起動トラブルを理解するために、理解しておくことをお勧めします。
なお、このページでは Windows を念頭に解説するため、Linux や OS/2 などでは一部当てはまらない表現をすることがあることを、あらかじめご了承ください。
開始オフセット | 内容 |
---|---|
0x0000 | ブートストラップコード |
0x01B8 | 署名 (Windows NT/2000/XP のディスクマネージャやディスクの管理が使用) |
0X01BA | パーティションテーブル(x4) |
パーティションテーブルは最大 4 レコードなので、PC は 1 つのハードディスクに作成できる最大パーティション数は 4 になります。
パーティションには、次の 2 つの種類があります。
起動ドライブとして使うことができるのは基本パーティションだけです。また、5 個以上のドライブを作りたい場合は、1 つを拡張パーティションとして定義し、この中に論理ドライブを複数作成する必要があります。
拡張パーティションの中で論理ドライブを定義するために使われるのが、拡張ブートレコード (EBR) です。
EBR は MBR のパーティションレコード部分と同じ構成です。パーティションレコードの最初の 2 レコードだけが使用され、第一レコードは自分のドライブのブートセクターの位置を、第二レコードは次のドライブの EBR の位置を示しています。
何らかの理由で MBR が破損して PC が起動しなくなった場合、次のような手順で MBR を再作成することができます。
ただし、ウィルスに感染して MBR が破壊されたり、乗っ取られた場合にこのような手順で MBR を書き換えると、ウィルスが保管したデータも消滅して被害が拡大することもあります。
以下のプログラムは MBR の 446 バイトまでを上書きするので、パーティションテーブルは一切変更されません。
注:Window NT/2000/XP を起動する場合でも、FDISK /MBR コマンドで MBR を復旧できます。
各ドライブの最初のセクターです。ここには OS に依存する実行プログラムが記録され、IO.SYS や NTLDR などのオペレーティングシステムローダーを起動します。
Windows9x が導入された PC に Windows NT/2000 を導入すると、既存のブートセクターが bootsect.dos というファイルにコピーされます。(当然の結果として、bootsect.dos ファイルのサイズは 512 バイトです。) NTLDR の表示する起動選択画面で Microsoft Windows を選択すると bootsect.dos がロードされて制御が渡され、これが IO.SYS (Windows9x の起動プログラム) を起動します。
ブートセクターには以下のものが記録されています。
開始オフセット | 内容 |
---|---|
0x00 | JUMP 命令 |
0x03 | OEM ID |
0x0B | BIOS パラメータブロック (BPB) |
0x24 | 拡張 BIOS パラメータブロック (BPB) |
0x3E(54) | ブートストラップコード |
0x1FE | 終了識別子 (0x55AA) |