次のファイルが存在しないかまたは壊れているため、Windows を起動できませんでした:
\system32\hal.dll
という、hal.dllが見つからないというエラーが発生したため、そのときの対応をメモ。
なお、今回の場合、最終的にはOSのクリーンインストールとなりました。
流れ
- 対応前に、外付けHDDとして必要なデータをバックアップ
- 回復コンソールで修正→エラーが出て修正できず
- CHKDSK でエラーを確認→いくつかエラーがあったものの、致命的なエラーはなし
- 再度、回復コンソールで修正→またエラーが出て修正できず
- CDより、hal.dllをコピー→別の「ntoskrnl.exe が存在しないか壊れている」エラー
- CDより、ntoskrnl.exe をコピー→黒画面でカーネルエラー→お手上げ
作業
2.回復コンソールで修正
DELLのサポートページに対応内容が出ていたため、その通りに対応。
エラーメッセージ「hal.dll is missing or corrupt」(hal.dllが見つからないか壊れています)を修復する方法 - KB Article - 117590
CDを入れて、回復コンソールから「bootcfg /list」で起動設定ファイルがなかったので、「bootcfg /rebuild」を実行。
しかし、「できませんでした、CHKDSKをしてください」とのことで、「インストールをブート一覧に追加しますか?」は表示されず。
MicrosoftのKB945380にも記載はなかったため、画面の操作に従うことに。
Windows XP SP2 でのエラー メッセージ:「Windows を開始できませんでした次ファイルが存在しないか破損しているためです。Windows\System32\Hal.dll」- Microsoftサポート
4.再度、回復コンソールで修正→またエラーが出て修正できず
再度、回復コンソールから「bootcfg /rebuild」を実行するも、同じように、CHKDSKでのチェックを求められる。
この時点で、bootcfgでの修復をあきらめる。
5.CDより、hal.dllをコピー
再度外付けHDDにしてのぞいてみると、本当に「hal.dll」が見当たらず。
仕方ないので、どこかから hal.dll をコピーしようと考え、いろいろと探していると以下の記載あり。
Yahoo!知恵袋 - system32\hal.dllが存在がしないため、windowsが起動できない (ベストアンサー参照)
その通りに hal.dll を展開し、再起動したところ、今度は「ntoskrnl.exe が存在しないか壊れている」エラーが発生。
6.CDより、ntoskrnl.exe をコピー
以下のMicrosoftの KB882569に手順があったため、その通りに実行。
"ntoskrnl.exe が存在しないか壊れている" と表示されて Windows XP を起動できない場合の対処方法 - KB882569
CDから回復コンソールを立ち上げ、ntoskrnl.exe をCDからコピーし、再起動。
再起動してみると、また黒い画面が表示され、「カーネルエラーです。」というメッセージが表示されていた。
なぜ起動できなくなったのかの原因として、「よく分からないエラーメッセージが出たので、強制的に再起動した」という手順を踏んだそうなので、故障かもしれずにお手上げ。
ということで、OSのクリーンインストールをしました。