- 自分で判断して、勝手に『自動修復』しようとしているのに、互換性がないなんてどういうこと?
- そもそも、自動修復機能はMicrosoftが仕込んだ機能でしょう?なのに、どうして互換性云々というのか?
などと突っ込みどころ満載ですが、ツッコんでも治らないので、いろいろと検索しました。
しかし、困っている人はかなり居るけれど大抵は「リカバリ」することになるようですね。ある意味この方法が一番の「正解」なのでしょうが、個人的には負けを認めているようで何だか納得出来ないです・・・。
というわけで、四苦八苦した顛末です。
まず、「自動修復を準備しています」に勝手に入るようになると、セーフモードにすら入れない(=やっぱり『自動修復』で起動してしまう)のを何とかしないといけません。この点は、BCDの通常起動設定である{current}にrecoverenabled値がyesになっていることに気づきました。これをbcdeditで消してやると、少なくとも「自動修復」のループからは抜けられそうです。
というわけで、コマンドプロンプトを立ち上げて、
bcdedit /deletevalue {current} recoveryenabled
として、値を消しました。
再起動すると、今度は自動修復に入らずに通常起動に進んだようですが、そこで今度はBSOD発生です。今回のケースでは、wfplwfs.sysが読み込めないか壊れていますと出ましたので、HDD故障を覚悟しましたが、ダメ元でこのファイルのみを修復してみました。USBメモリからブートして、他のWindows8.1に入っていたwfplwfs.sysを問題のPCにコピーしました。
すると、今度は起動してデスクトップ画面までたどり着きました。しかし、「d3d10_1.dllが壊れている」とか何とかのエラーが出ますし、何だか反応がかなり遅いです。
まあ、HDDの故障か、少なくともシステムファイルの破損が起きているのは間違いないので、chkdsk /rとsfc /scannowを実行して、ディスク&ファイルの検査をしました。sfcの方では、いくつかのファイルの破損が報告されました。chkdskの方は、かなりの時間がかかるようなので、結果待ちの状態です。
結論はまだですが、やはり少なくともリカバリを、場合によってはHDDを交換した方が良いのかもしれません。
最後に、↑のような操作をするには、BCDに関する慣れがないうちはやらない方がいいかも知れません。万一、まったくブートできなくなったとしても保障できませんので。
それから、少なくともUSBブートできる環境が必要になるでしょう。これがあれば、BCDのバックアップやテスト用ブート環境の構築がやりやすくなりますから。実際、↑の説明では「recoverenabled値を削除する」と書きましたが、私は念を入れて、{current}設定をコピーした上でコピーした側のrecoveryenabled値を削除しました。そして、ブート時の選択画面からコピーした側の設定で起動する方法を行いました。
0 件のコメント:
コメントを投稿