トップページHDD症状と対策NTLDR is missing 対策



HDD症状と対策


本記事は、WindowsXP 限定です。
WindowsVista以降のOSには適応できません。




このようなメッセージが出される原因にはいくつか考えられます。
原因に応じて対応策も異なります。
まずは,対策が簡単な方から,ひとつずつ確認してゆきましょう。

(1) フロッピー装置に,フロッピーが挿さっている
フロッピーディスクを挿したままで,起動した場合に,このメッセージが出されるケースがあります。もちろん,ブートの順序でHDDよりも先にフロッピーディスクが指定されている場合ですが。
一般には,「System not found」のメッセージが出されることが多いのですが,挿されているフロッピーディスクの状態によっては,このメッセージが出ることがあります。
ある特定のフロッピーディスクで出ることから,原因はあるのだと思いますが,はっきりしたメカニスムは不明です。
対策としては,フロッピーディスクを抜くだけで,回復できます。

(2)BIOSの設定が変わってしまった

BIOSの設定に,起動する装置を指定するところがあります。
ここには通常,OSが格納されているハードディクスが指定されていますが,それが,何らかの原因で変わってしまうことがあります。
例えば,停電やコードが抜けてしまったなど,ちゃんとしたシャットダウンの手順を踏まずにシステムが停止してしまったために,BIOSの設定が変化してしまうこともあるようです。
その他にも,原因不明ながらBIOSの設定が変わってしまうということもあります。

複数のHDDドライブが接続されている場合,変化の結果,OSが入っているHDDドライブ以外のドライブが起動ディスクに変化してしまうと,「NTLDR is missing」のメッセージが出てくることがあります。

BIOSの画面で,起動ドライブが正しいHDDドライブに指定されているかどうか確認してみましょう。
違うHDDドライブが起動ドライブになってしまっていたら,正しいHDDドライブに設定しなおして下さい。これで復旧する可能性は高いと思います。

(3) WindowsXPのバグ
Cドライブのルートの直下に,たくさんのファイルを置いてしまった場合に発生します。
たくさんのファイルを置いてしまったことで,このような状態になるのは,システムのバグです。
exploreで,Cドライブの直下のファイル状況を調べてみると判別できるでしょう。

一般には,ファイルがCドライブ直下に書き込まれることはありません。この状況は、何かのプログラムがCドライブ直下一時ファイルを定期的に作成して削除にし忘れたような場合、または誤って多数のファイルをCドライブ直下にコピーした場合に発生することがあります。そのようなプログラムは,かなりひどい作りですが。
この原因の可能性は少ないと思われます。

Windows XP Service Pack 2 では修正済みということですので,新しいシステムではこのようなことは起こらない筈です。Windows XPがアップデートされておらず,SP2になっていない場合には,この現象が起こり得ます。
コントロールバネルからシステムアイコンを選択して,OSを確認してみて下さい。
OSがSP2以降ならば,これが原因ではありません。

万一,これが原因ならば,ファイルを削除すれば良いのですが,システムが起動できない状況では,ファイルを削除することもできません。
マイクロソフト社からBcupdate2というプログラムを入手してファイルを削除することが必要です。
これについては,Microsoftのサイトに詳しい説明と対処方法が書かれています。
参考にして修復してみて下さい。
  「コンピュータの起動時に "NTLDR is missing" エラー メッセージが表示される」

もうひとつの方法として,ハードディスク装置を取り外して,他のパソコンに接続してファイルを削除する方法もあります。

(4) 本当にNTLDRが無い,または壊れている
最も簡単な修復方法はWindows起動ディスク(緊急起動ディスク)を使うことです。
Windows起動ディスクの作成方法は,下記の記事に書いています。
   Windows起動ディスクの作成方法
この原因でこのメッセージが出る場合は,Windows起動ディスクを使って,システムを起動することができます。

まず,緊急起動ディスクをフロッピー装置に挿します。BIOSでフロッピー装置を起動順位の一番にして,電源を入れます。
これが原因ならば,システムが起動する筈です。
システムが起動したら,下記のようなコマンドで,ブート関連のファイルを修復します。

start→すべてのプログラム→アクセサリ→コマンドプロンプトを起動します。

C:\>attrib -s -h -r NTLDR
C:\>copy A:\NTLDR C:\NTLDR
C:\>attrib +s +h +r NTLDR

上記の場合は,NTLDRが残っていて壊れていた場合ですが,NTLDRがなかった場合には,コマンドがエラーになることもあります。
状況に応じて,コマンドを変更する必要もあります。

同時にNTDETECT.COMも壊れている可能性があるので,同様にコピーしておきましょう。

C:\>attrib -s -h -r NTDETECT.COM
C:\>copy A:\NTDETECT.COM C:\NTDETECT.COM
C:\>attrib +s +h +r NTDETECT.COM

boot.iniについても同様に復旧しておいた方が良いかもしれません。

(5) Partitionテーブルの異常
何らかの原因で,パーティション・テーブルのOSが入っていないパーティションに,間違ってアクティブ表示がついてしまっており,かつそのパーティションに適正なブートセクタがあると,こういう現象が起きます。
NT-IPLはNTLDRを同一領域ルート内に探しに行きますが、システムが存在しない訳ですから,そこにはNTLDRは存在せず,このメッセージが出されることになります。

根本の原因は,パーティション・テーブルの間違った位置にアクティブ表示がついてしまっていることですから,それを正しく直すことで問題が解消されます。


方法1.ツールを使って,パーティション・テーブルを修正する。
この方法については,下記のサイトに詳しい説明があります。
  「ツールを使って,パーティション・テーブルを修正する」

方法2. 実験中

上記の方法1は,実際には難しいものです。もっと易しい方法がないかと調べてみました。
microsoftのサイトには,回復コンソールを使って修正できるような記述がありました。しかし,実際に試してみたところ,DISKPARTコマンドでは,パーティションの作成や削除はできるもののアクティブなパーティションを変更する機能は提供されていませんでした。
通常のコマンドプロンプトから呼び出すDISKPARTコマンドには,この機能が提供されています。しかし,ブートができない状況では,利用ができません。

FDISKを使って正しいパーティションをアクティブに指定し直す実験をしてみましたが,Windows98SEのFDISKでは,大容量のハードディスクのパーティションがうまく表示されませんでした。ドライブがSATAのため,FDISKが対応できていないのかもしれません。

もう少し実験を続けます。

(6) ブートセクタ(NT-IPL)のディスクパラメータが壊れている。
ここが壊れてしまうと,ブートに必要な情報が取り出せなくなってしまいます。
こうなると,ディスクパラメータを修復する以外に手はありません。
修復には,高度な知識が必要となります。
自信のある方は,下記のサイトを参考に修復してみて下さい。
   「TestDiskを使ってブートセクタ(ディスクパラメータ)を回復する」



スポンサードリンク