« 詐欺ソフト「WindowsXP Recovery」の駆除。 | トップページ | 詐欺ソフト「WindowsXP Restore」の駆除 »

2011年6月14日 (火)

hal.dllが読めない為起動しません。

本日のトラブルは起動トラブルです。

突然パソコンが起動しなくなったとの事で出張して来ました。

問題のパソコンはソニーのVAIOデスクトップ。WindowsXPです。

前日まで問題なく起動していたが突然起動しなくなったとの事。

電源を入れると次のメッセージ。

「次のファイルが存在しないかまたは壊れているためwindowsを起動できませんでした。
<windows root>\system32\hal.dll.
上記のファイルをインストールし直してください。」

よくあるのが似たようなメッセージで

「次のファイルが存在しないかまたは壊れているため、Windows を起動できませんでした: \WINDOWS\SYSTEM32\CONFIG\SYSTEM」

「次のファイルが存在しないかまたは壊れているため、Windows を起動できませんでした: \WINDOWS\SYSTEM32\CONFIG\SOFTWARE」

で起動出来ない場合。

これらの場合はレジストリの破損によるものでハードディスク自体が破損して起動しなくなる場合と単にレジストリが破損して起動しなくなる場合。

この場合はハードディスクを修復したりレジストリを修復して修理する場合が多いのですが今回のメッセージの場合は少し違います。

該当の\system32\hal.dllが破損しているケースは殆ど見かけません。

\system32\hal.dllは正常ですが何らかの原因でhal.dllを読み込めない場合が殆どです。

よくあるのがboot.iniファイルの破損。

Windowsはまずboot.iniを読み込んでハードディスクのどのパーティションにWindowsが入っているかを確認してhal.dllファイルを読み込みます。

boot.iniファイルがなかったりは破損している場合はhal.dllファイルの場所が分からない(読み取れない)ので上記のようなエラーメッセージを出します。

ただハードディスクの破損の可能性も全くないという事はありません。

今回のお客様はSONYのサポートへ問い合わせてリカバリを勧められたそうですが大事なデータが入っているとの事でうちにご依頼頂きました。

まずはデータの復旧を最優先にしての作業となりましたのでお預かりです。

持ち帰りハードディスクを取り出してメンテPCに接続。

ハードディスクのSMARTテストでとりあえずエラーがない事を確認してからお客様から指示されたデータをバックアップ。

念のためハードディスク全体をイメージバックアップ。

データを確保してから修理作業となります。

真っ先に確認したのがboot.iniファイル。

通常はCドライブのルートに隠しファイルとしてあるはずなのですが何故かありません。

他のntldrなどの起動ファイルはありますがboot.iniファイルだけがありませんでした。

原因はこれです。

なぜこれだけ消えたのかは不明ですがこれが無いと当然起動しません。

早速一般的なboot.iniファイルをテキストファイルで作成してみました。

「[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect

これをCドライブのルートに保存してハードディスクを元に戻して起動。

通常はこれで起動するわけですが今回はやはり同じエラーで起動しません。

どうやらWindowsが入っているのパーティションの場所が違うのかもしれません。

その場合回復コンソールから自動でboot.iniファイルを修復してくれます。

回復コンソールで起動してCドライブのルートに移動。以下のコマンドを入力。

C:ATTRIB -H C:\boot.ini
C:ATTRIB -S C:\boot.ini
C:ATTRIB -R C:\boot.ini
C:del boot.ini
C:BOOTCFG /Rebuild

これでとりあえず起動できるboot.iniファイルが構築されます。

再起動するとWindows選択画面が表示されますので新しく作ったWindowsを選択。

すると無事起動してくれました。

あらためてboot.iniファイルを確認してみると

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="WindowsXP"
multi(0)disk(0)rdisk(0)partition(1)\Minint="windowsXP"
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect

一番上のmulti(0)disk(0)rdisk(0)partition(2)\WINDOWS="WindowsXP" が正しい項目です。

パーティションの場所が2のようです。

おそらくリカバリ領域などが1番だったのでしょう。

後は不要な

multi(0)disk(0)rdisk(0)partition(1)\Minint="windowsXP"
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect

を削除して一番目を

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="WindowsXP" /fastdetect

として保存。

再起動後Windows選択画面も出ずにそのまま起動してくれました。

今回boot.iniファイルがなぜ消えてしまったのかは不明ですがあまりないトラブルなので記事にしました。

人気blogランキングに登録しました。クリックご協力ください。

人気blogランキングへ

石川県内のパソコン修理・トラブルサポートはPCRサービスまで!!

|

« 詐欺ソフト「WindowsXP Recovery」の駆除。 | トップページ | 詐欺ソフト「WindowsXP Restore」の駆除 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/185928/51940715

この記事へのトラックバック一覧です: hal.dllが読めない為起動しません。:

« 詐欺ソフト「WindowsXP Recovery」の駆除。 | トップページ | 詐欺ソフト「WindowsXP Restore」の駆除 »