ブートセクタ

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

ブートセクタ: Boot sector)とは、ハードディスクドライブフロッピーディスクなどの磁気ディスクディスクセクタの一種で、ブートプログラムのコードなどを格納している部分である。ブートブロックBoot block)とも。

一般に、PC/AT互換機ではブートセクタと呼び、他のコンピュータではブートブロックと呼ぶことが多い。

BIOSがブートデバイスを選択すると、そのデバイスの第一セクタ(後述するMBRまたはVBRその他の実行コード)をコピーし、0x7C00 番地に配置する。

目次

[編集] 種類

ブートセクタには、主に以下の2種類がある。

  • ボリュームブートレコード(VBR)は、パーティションのない記憶媒体の第一セクタか、または個々のパーティションの第一セクタである。そこには、その媒体(またはパーティション)にインストールされたオペレーティングシステム(またはその他のスタンドアロンのプログラム)をロードして起動するコードが格納されている。ブートセクタであることを示すため、2バイトの16進数 0xAA55 で表されるブートセクタ・シグニチャをそのセクタの最後尾に書き込んでおく。そうしないと、BIOSやMBRコードがエラーメッセージを表示し、ブート処理を中断する。
  • マスターブートレコード (MBR) は、パーティションのある記憶媒体の第一セクタである。多くのBIOSコードは、MBRにもブートセクタ・シグニチャ(0xAA55)があることを要求する。MBRセクタには、どのパーティションがアクティブであるかを判断して、VBRコードを起動するコードが格納されている。

[編集] 運用

PC/AT互換機では、BIOSはVBRとMBRを区別せず、パーティションも認識しない。BIOSは単に記憶媒体の第一セクタをロードして実行するだけである。フロッピーディスクの場合、それはVBRになる。ハードディスクの場合、それはMBRになる。MBR内のコードはパーティションを認識するので、アクティブに設定されているパーティションのVBRをロードして実行させる。VBRコードは二次ブートストラップローダをロードする。

さらに言えば、フロッピーであろうが、USBメモリであろうが、ハードディスクであろうが、ブート可能な記憶デバイスの第一セクタに格納されているものは、OSをブートするコードである必要はない。BIOSは単にそこにあるものをロードしてそれを実行するだけであり、その際にセクタの最後の2バイトが0xAA55になっていさえすればよい。このため、MBRにあるブートコードを容易に置換可能であり、場合によってはユーザに次にどうすべきかを選択させるような複雑なブートプログラムをロードさせることもできる。ただしこのように簡易な設計になっているため、次の節で説明するようにウイルスに狙われやすいという問題もある。

ブートも参照。

[編集] ブートセクタとコンピュータウイルス

ブートセクタは、コンピュータウイルスがシステムの制御を奪う手段として使われることがある。この種のウイルスはブートセクタの内容をウイルスのコードで書き換える(フロッピーの場合、ハードディスクの場合、両方に感染する場合がある)。

[編集] 外部リンク