BOOTMGR is missing

「BOOTMGR」とは何か

BOOTMGR is missing
Press Ctrl+Alt+Del to restart

画面上にこのように表示されるだけで、動作停止します。
「Press Ctrl+Alt+Del to restart」とか書かれてますけど、
「Ctrl+Alt+Del」キーを押して再起動したところで、また同じ表示が現れるだけです。

何のファイルも読み込まれません。
一番初めに読み込まなければならないファイルの読み込みに失敗しているからです。

結構深刻なWindowsのエラーですが、
こうなってしまった原因に心当たりがある場合は、すんなり復旧できるはずです。

「BOOTMGR」とは何か

「BOOTMGR」は、「Windows Vista」以降で用いられるようになったブートローダです。
起動ディスクにおいて最初に読み込まれるファイルで、
Windowsのシステムによって起動するパーティションには必要不可欠なファイルです。

「Windows XP」以前のNT系OSのブートローダは、「NTLDR」でした。
つまり、かつては「NTLDR is missing」と表示されていたエラーが、
「BOOTMGR is missing」に変わっただけで、エラーの内容自体は同じようなものです。

「Windows Vista」以降、パーティションの構成や起動の仕方が、それまでのWindowsとは大きく変わってきました。
「Windows 7」になって、アクティブパーティション(起動時に読み込まれるパーティション)と、
OS本体のインストールされたパーティション(つまり「Cドライブ」)が分離されました

「Windows 7」がプリインストールされたパソコンでは、いろんなパーティションから起動する必要性から、
「Cドライブ」やリカバリ領域にも「BOOTMGR」があったりします。
でも、「Windows 7」をクリーンインストールすると、「Cドライブ」には「BOOTMGR」がなかったりするのです。

bootmgr

「BOOTMGR」のある場所は、パーティションのルートです。
「BOOTMGR」という名前で、拡張子のないファイルがあるはずです。

ちなみにこれは、「Windows 7」をクリーンインストールした際に自動作成されるシステム起動用パーティションを、
エクスプローラで表示したものです。
参考のため、普通は隠されているものをむりやり表示させています。

このパーティションには通常、ドライブレターが与えられておらず、エクスプローラ上からは隠されています。
ディスクの管理」で確認すると、
「システムで予約済み」という名前で容量が100MBのパーティションがこれにあたります。
さらに、納められているのがすべてシステムファイルであるため、ファイルの表示まで隠されています。

むしろ、これらは普段隠されているべきものです。
あくまでも、「BOOTMGR」がパーティションのルートにあるということを示すために、
参考のため表示させてみました。

ここで言いたいことは、起動可能なパーティションのルートには「BOOTMGR」が保存されているということ。
少なくとも、アクティブなパーティションには「BOOTMGR」が絶対に必要です。
さもないと、起動できません。

「BOOTMGR is missing」と表示される原因

「BOOTMGR is missing」というのはつまり、「BOOTMGR」が見つけられないということ。
ではなぜ、「BOOTMGR」が見つけられなくなってしまうのでしょうか?

「BOOTMGR」にアクセスする前の起動処理は、ごく限られています。
ブートセクタの内容をたどっていくだけです。
つまり、ディスク全体に対するブートセクタであるMBRと、
各パーティションごとのブートセクタであるPBSの2つだけ。

ブートセクタ

これは、「Windows 7」でNTFSフォーマットしたプライマリパーティションのブートセクタの内容です。
あくまでも、一例です。
最後のほうに、ASCIIコードで「BOOTMGR is missing」と書かれているのがわかります。
つまり、「BOOTMGR is missing」というエラーは、ブートセクタが表示させているのです。

起動時におけるブートセクタの役目は、
ブートセクタに書かれた情報を元に「BOOTMGR」を探し出し、起動処理を引き継ぐこと。
もし「BOOTMGR」が見つからなければ、「BOOTMGR is missing」と表示して、異常をユーザーに知らせること。
ただそれだけです。

以下、「BOOTMGR is missing」と表示されてしまう理由をまとめていきます。

アクティブパーティションの間違い

どのパーティションから起動するか、つまり、どのパーティションがアクティブかという情報は、
MBRのパーティションテーブルに記録されています。

「BOOTMGR is missing」はブートセクタが表示させているので、
MBRは関係ないようにも思えますが、そうではありません。
実は、「Windows Vista」以降でNTFSフォーマットされたブートセクタであれば、
すべて先の例と同じような内容になっています

たとえ、データ保存用に設けたパーティションであっても、です。

このため、アクティブパーティションの設定に間違いがあり、
Windowsの起動ファイルがないパーティションから起動しようとすると、
ほとんどの場合においてブートセクタまでは起動処理が引き継がれてしまう可能性があり、
結果として「BOOTMGR is missing」が表示されてしまう、というわけです。

そもそも、起動できないパーティションから起動しようとしているので、起動できないのは当たり前です。

「BOOTMGR」がない

こちらは少数派だと思いますが、アクティブパーティションが正しくても、
Windowsの起動に必要なブートローダである「BOOTMGR」が見つからなければ、
当然のことながら「BOOTMGR is missing」と表示されます。
「BOOTMGR」というファイルは、アクティブパーティションのルートに存在しなければならないものです。

ただ、意図的に削除したりしない限り、「BOOTMGR」が消えてなくなることはないと思いますが。

「BOOTMGR is missing」からの復旧方法

単純に、USBメモリ等から起動していた場合にも、「BOOTMGR is missing」が表示されてしまうことがあります。
この場合は、該当するデバイスの接続を外せばWindowsを起動できます。

ただし、USBメモリ等から起動しているというのは、レアケースかもしれません。
というのも、NTFSフォーマットされていて、かつアクティブパーティションであり、
BIOS設定にてUSB接続デバイスの起動優先順位が高い、という限られた条件下でしか成立しないからです。
一般に、USB接続デバイスの起動優先順位はそんなに高くありませんので。

先に述べたアクティブパーティションの間違いか、「BOOTMGR」がないのかによって復旧方法も違ってきますが、
共通して言えるのは、この状態ではWindowsを起動できないということです。
セーフモード等、Windowsの起動メニュー選択画面、いわゆる「詳細ブートオプション」を表示することもできません。
ディスクにアクセスする最初の段階でつまずいているからです。

アクティブパーティションの修正

今現在問題のあるハードディスクからは起動できないかもしれませんが、
CD/DVDドライブから起動することはできるはずです。
そこで、インストールなしでCDから直接OSを起動するライブCDというものがあります。

具体的には、WindowsのライブCDである「Windows PE」や、
緊急時に役立つソフトをまとめた「Ultimate Boot CD」など。
そこから、アクティブパーティションを修正できるソフト、
たとえばTestDiskGPartedを使うことによって、復旧することができます。

WinPe-tch Directで作成した「Windows PE」起動ディスクには、「TestDisk」が同梱されているので、
これを利用すると便利です。

また、「Ultimate Boot CD」から「TestDisk」を起動する実例は下記ページにて。

「TestDisk」を「UBCD」から起動する

「BOOTMGR」の設置

本当に「BOOTMGR」を削除してしまったのであれば、
再度アクティブパーティションのルートに「BOOTMGR」を保存し直さなければなりません。

「BOOTMGR」はWindowsの一部というか、Windowsを構成するファイルのひとつなので、
Windowsによってコピーを保存する必要があります。
「Windows 7」になって、システム修復ディスクなるものを作成できるようになりました。
この「システム修復ディスク」によって、「BOOTMGR」を保存し直すことが可能です。

「システム修復ディスク」から起動し、「システム回復オプション」の「スタートアップ修復」を選択することで、
自動的に「BOOTMGR」を保存してくれます。

また、「システム修復ディスク」に含まれている「BOOTMGR」をそのままコピーしても復旧できます。
これは「システム修復ディスク」というより、「Windows PE」の「BOOTMGR」なので、
ファイルをコピーするのであれば、Windows PEで十分代用できます。

どーでもいーはなし

「システム修復ディスク」が起動トラブルを自動修復してくれるのであれば、
アクティブパーティションの修正も「システム修復ディスク」に任せてしまえばよさそうです。
実際、アクティブパーティションが存在しない場合は、
自動的に起動すべきパーティションを検出し、アクティブに設定してくれます。

ところが、誤ったパーティションがアクティブになっていた場合、
その設定を優先して自動検出がうまく機能せず、復旧できないことがある
ため、
ここでは手動操作による方法を推奨しています。