|
2007/04/10 (火) NTLDR is missing
WindowsNTベースのコンピューターで、起動後にBIOSの画面が表示された後、Windowsが起動せずに NTLDR is missing Press any key to restart と表示されることがあります。研究室の先輩がこんな症状に出くわしてしまい、相談を受けました。 実はこのエラー、Googleで検索すると非常に多くヒットします。それだけメジャーな理由は、フロッピーディスクやUSBメモリーが挿さっているだけで出ちゃうから。NTLDRというのは、boot.ini、NTDETECT.COMと合わせてWindowsの起動に必要なファイル群です。BIOSの設定によっては、パソコンはフロッピー、CD、HDDの順番に起動可能なプログラムを探します。そこで、データしか入っていないふつうのフロッピーが入っていると、そこにNTLDRなんてあるわけないので、NTLDR is missing(NTLDRがありません)というエラーメッセージが表示されるのです。何とも人騒がせな。メーカー機の中には、無用なトラブルを避けるためか、Please remove the disketteなんちゃらかんちゃらとわかりやすいエラーが出ることがあります。 ところが今回はそうではありませんでした。つまり、HDDにアクセスしてるんだけどブートできないと。色々勉強した結果、ここで2つの可能性があります。1つはMBR(マスターブートレコード)といって、HDDのパーティションを管理してるところが書き換えられてて、正しいパーティションから起動しようとしていない可能性。もう一つは、MBRは正常だけど、何らかの原因で本当にNTLDRが消失してしまっている可能性です。まあ、前者なら回復コンソールでfixmbrを実行するだけ、後者なら正常なパソコンからntldrを持ってくるだけ、というわけで、どっちでもよかったんですけど、後者からあたってみました。 最初は、うちにある唯一のWindowsXPHomeEdition(SP2)マシンからboot.ini, bootfont.bin, NTDETECT.COM, ntldrの4つのファイルをコピーする作業です。4つとも隠しファイルでシステムファイルでかつ読み取り専用なので、エクスプローラーの設定をいじって操作するよりもコマンドを叩いたほうが早いです。CのルートからXPでフォーマットしたフロッピー(A)にコピーするために、 c:\>xcopy /h boot* a:\ c:\>xcopy /h nt* a:\ を実行。がちゃがちゃとフロッピードライブにファイルがコピーされるのです。そして、読み取り専用属性を戻すために、 a:\>attrib * -s -h の後 a:\>attrib * +s +h +r を実行です。
できあがったフロッピーを壊れたパソコンに入れると、見事起動できました!。 起動後にコマンドで c:\>dir /as を実行してみると、 ntldr とNTDETECT.COMが何故か消失していました。 そこでフロッピーから a:\>xcopy /h nt* c:\ その後、 c:\>attrib nt* -s -h c:\>attrib nt* +s +h +r で読み取り専用属性を戻すと、完成です。 こんどはフロッピーなしでも元のように起動することができました。
※ここに書いてある事項に関して、著者はいっさいの責任を負いません。あくまで1つの参考資料として扱い、症状を十分に検証したうえで実行ください。
参考文献 http://support.microsoft.com/kb/318728/ja http://nobumasa-web.hp.infoseek.co.jp/faq/boot_hdd/trouble.html#err_msg4
|