DELLの少し古いPCで、Windows7が立ち上がらなくなった。
ボタン電池を交換後、何故か起動できなくなった。
*** STOP: 0x0000007B(0x80786B48,0xC0000034,0x00000000,0x00000000)
これはまた・・・。
セーフモードで起動詳細を見てみると、CLASSPNP.SYSのロード後にBSoD(Blue Screen of Death)となる。
ウィンドウズアップデート後や、ディスクがクラッシュしてのエラーではないので、デバイス系のエラーという事になるが、このエラーは「INACCESSIBLE_BOOT_DEVICE」(ブートデバイスにアクセス出来ない)となっており、また、CLASSPNP.SYSのロード時のエラーからSCSIやデバイス関係のエラーであることが分かる。ディスク自体のエラーもなく、クローンで複製しても状況変わらず。なので、SFCやDismコマンドを走らせても全く意味がない。また、CLASSPNP.SYS自体を入れ替えたり削除しても、その処置は全くお門違いとなる。
しかし、そんな簡単にBSoDが出るものなのか。
回避策
DELLのサイトに記載があるように、AHCIモード(Serial ATA)に関係があるようだ。
ならばとBIOSを見てみる。
するとRAID Onとなっており、これをAHCIモードに変更する。そして、OS側のレジストリのSATAモードもそれに合わせ変更を行う。
マイクロソフトサイト:Windows XPブルースクリーンのトラブルシューティング
上記サイト記事によると、
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\IastorV
このどちらかのキー内、Start値を0にせよとあるが、今回のパターンでは逆に設定しないといけない為、0を1に変更する必要がある。
レジストリの変更方法としては、対象PCのWindowsインストールメディアか、ウィンドウズPEで起動し、DOSコマンドプロンプトからREGEDIT.EXEを起動する事で修正が可能。
これで無事、通常通り起動できた。
起動時のスタートアップ修復が出ているが、通常起動を選択し正常起動後、再起動すればそれは出なくなるのでスタートアップの修復は不要。
考察
マザーボードの電池を交換する事でBIOS設定が初期値に戻ってしまい、そのデバイスの設定がおかしいままウィンドウズを立ち上げた為、WindowsがSATAデバイスを無効と判断、自動的にレジストリが変更されてしまった。こうなるとタチが悪く、ぱっと見ではなかなか判断が付き辛くなってしまうから要注意だ。
結局、BISOが定めているデバイスと、ウィンドウズ側が求めているデバイスが合致しなかったためCLASSPNP.SYSを読み込んだ時点でBSoDとなってしまった。
先ずは、何が原因でBSoD等のエラーが発生したのかを判断する必要がある。これをせず、無暗にウィンドウズの修復処理に頼ってしまうと泥沼に嵌る。今回は私もいい勉強になった。
また、この類のトラブルシューティングでの鉄則は、必ずクローンディスクを作成し、そのディスクで弄繰り回す事。何故なら、取り返しのつかない修正等、無茶をしてもすぐに元に戻せるからだ。
コメントを残す