ブートセクタは、文字通り1つのセクタです。
セクタとは、記憶装置上の最小単位です。※基本的に、512バイト。
ブートセクタはファイルですらありません。
というか、ブートセクタはファイルを読み込むために必要な情報が収められている場所でもあるので、
ブートセクタを読み込まなければ、ファイルをファイルとして認識することができません。
従って、ブートセクタに問題があると、その記憶装置の動作に致命的な支障をきたします。
具体的に、どのブートセクタの何が問題なのかを理解するためには、
事前にブートセクタの役割をある程度知っておく必要があります。
ブートセクタは、大きくMBRとPBSの2種類に分けられます。
簡単にまとめます。
MBR | マスターブートレコード。 記憶装置の、最初のセクタ。 各記憶装置ごとに1つある。 |
---|---|
PBS | パーティションブートセクタ。 単に、ブートセクタとも。 パーティションの、最初のセクタ。 各パーティションごとに1つある。 |
つまり、それぞれのハードディスクごとに、
1つのMBRと、パーティションの数だけのPBSがあるということです。
※拡張パーティションの論理ドライブでは、拡張ブートレコードとPBSが1セットになります。
GPTディスクにおいても、です。
さらに、それぞれのブートセクタの中を見てみると、
決められたプログラム部分と、サイズやファイルシステム等の固有の情報が収められた部分があります。
プログラム部分は、OSが同じであれば基本的に同じですが、
固有情報の部分は、それこそ使われ方の分だけ違う可能性があります。
ブートセクタにも、広義のブートセクタと狭義のブートセクタがあります。
当ページで書いているのは、主に広い意味でのブートセクタについてです。
狭い意味でのブートセクタは、PBSのみを指します。
PBSという名称はあまり一般的ではないかもしれませんが、
ここではブートセクタの種類について説明しているので、区別するためにあえてPBSと書いています。
最近ではGPTの普及に伴い、MBRや拡張パーティションの重要度が低下してきているので、
ブートセクタと言えばPBSのみを指すのが一般的になってきていると思います。
ディスクごとのブートセクタ、MBR
パソコンがハードディスク等の記憶装置にアクセスすると、
まず記憶装置の先頭セクタを読み込みます。
この、最初に読み込まれる記憶装置の先頭セクタが、MBR(マスターブートレコード)です。
つまりMBRは、記憶装置につき1つだけ存在するブートセクタです。
MBRにはパーティションテーブルと呼ばれる領域があり、
記憶装置内のどこにどういった種類のパーティションがあるかという情報が収められています。
パーティションの場所を定めているMBR自体は、どのパーティションにも属していません。
ちなみに、パーティションが4つまでしか作成できない(論理ドライブを除く)という制限があるのは、
パーティションテーブルが、パーティション4つ分の情報を収めるだけの容量しかないからです。
パーティションテーブルで、これらパーティションのうち1つだけをアクティブに設定することができます。
アクティブなパーティションがあると、
MBRを読み込んだ後に、アクティブパーティションの先頭セクタ(PBS)を読みにいきます。
つまり、アクティブパーティションというのは、いわゆるブートパーティション、起動ドライブのことです。
アクティブなパーティションがなければ、起動処理が行われることもありません。
アクティブパーティションがないということは、
その記憶装置が起動ディスクとして使われないことを意味します。
パーティションごとのブートセクタ、PBS
パーティションの先頭セクタが、PBS(パーティションブートセクタ)です。
つまり、PBSはパーティションごとにパーティションの数だけ存在しています。
PBSには、このパーティションがどういったファイルシステムでどのようにフォーマットされているかといった、
そのパーティションのファイルシステムに関する重要な情報が収められています。
逆に言えば、パーティションをフォーマットするというのは、PBSを作り直す作業でもあるのです。
PBSを正しく認識できないと、そのパーティション内のファイルに一切アクセスできなくなります。
さらに、アクティブパーティションのPBSは、起動に際して重要な役割を担っています。
アクティブパーティションのPBSが読み込まれると、
その内容に従ってパーティション内に保存されている「BOOTMGR」等のブートローダを読みにいきます。
このブートローダが、ハードディスク内で一番初めに読み込まれるファイルです。
そこから、Windows等のOSが起動していくことになります。
ブートセクタであるということ
ブートセクタは、まずマザーボードのBIOSによって読み込まれます。
BIOSによってブートセクタが見つけられない場合は、「Operating System not found」等表示されるだけで、
それより先に起動処理が進みません。
また前述のとおり、ブートセクタはファイルシステムを定義するものでもあるため、
起動パーティションに限らず、すべてのパーティションに必要です。
では、BIOSやOSは何をもってブートセクタかどうかを判断しているかというと、
ブートシグネチャ(ブートセクタシグネチャ)の存在です。
ブートシグネチャとは、ブートセクタであることを示す署名のことです。
ブートセクタの末尾2バイトには16進数で「AA55」(0xAA55)という記述があり、これがブートシグネチャです。
セクタ内の実データとしては、最後の2バイトが「55 AA」で終わります。
ブートシグネチャがあればブートセクタ、なければブートセクタではないとみなされます。
ちなみに、ブートシグネチャが失われたブートセクタは、「TestDisk」を使って復旧できます。
もっとも、ブートシグネチャの有無については、異常があっても原因箇所に気づきにくいとは思いますが。
記憶装置の不具合とブートセクタ
これまでに書いてきたとおり、ブートセクタはOSの起動に関して非常に重要な役割を担っています。
ハードディスク内において、
MBR → 起動パーティションのPBS → ブートローダ
と起動処理が進んでいく仕組みは、基礎的なものです。
ブートセクタに問題があると、OSを起動できないどころか、ファイルを読み込むまでにも至らず、
パソコンのシステムとしては、起動しようとしていないも同然です。
特に、ほとんどハードディスクが読み込まれることなく、真っ黒な画面で英字しか表示されない場合は、
起動できない原因がブートセクタにある可能性も高いです。
日常的にブートセクタの働きを意識することはありませんし、その必要もないと思いますが、
万が一パソコンが起動できなくなった場合は、ブートセクタにも注意を払う必要があるはずです。
また、ブートセクタが重要なのは、起動ドライブに限ったことではありません。
ブートセクタを認識できないと、ドライブをマウントできません。
従って、ドライブの内容を一切確認できなくなります。
データ保存用のハードディスクやUSBメモリを認識できなくなったときも、
ブートセクタが原因になっている可能性を考えるべきだと思います。