2014年7月11日金曜日

起動しなくなったWindows8(8.1)の件の続き

(2014/8/21追記)
下記に書いてあることは、うまくいく場合もあります(ありました)が、その後の経過を見ていると、当てはまらないことの方が多いように思います。
が、念のため、この書き込み自体は消さずに残しておきます。



しつこいですが、先日書いた「ブートしなくなったWindows8.1の復旧」の続きです。

あの後、またちゃんと休止状態から復帰・起動できるようになっていました。高速スタートアップもちゃんと効いていました。なぜ、そうなったのかは、未だに不明です。

が、昨日、また休止状態から復帰しなくなりました。確か、その前後でWindows Updateがあったと記憶しています。ずっと休止状態が使えていたので、シャットダウンしないで運用していました。しかし、Windows Updateのせいで再起動を余儀なくされたのです。その後から、現象が起き始めたようです。

以前の経験から、特定のhot fixによって起きている訳ではないと直感しました。なので、インストールされた更新をアンインストールすることはしなかったです。

しかし、今日はもしかすると現象の直し方が分かったような気がします。まだ、1回しか確認できていないのですが・・・。その直し方とは、


  • いったん、hiberfil.sysを削除する

というものです。
普通には削除できませんから、管理者権限でcmd.exeを立ち上げて、
  • powercfg /h off [ENTER]
  • powercfg /h on [ENTER]
と入力し、hiberfil.sysの内容をいったんクリアさせます。これを行った後は、また休止状態が使えるようになりました。

ただの偶然かも知れないので、その状態でWindows Updateをかけてみました。重要な更新はありませんでしたが、オプションの更新が3つほど残っていた(KB2967917/KB2959626/KB2972094)のでそれらを更新してみました。すると・・・
  • また休止状態から起動しなくなりました。
なぜでしょうか?
とにかく、検証のため、もう一度hiberfil.sysを上の手順で消してみます。すると、予想どおり、直りました!

イベントビューアーのログから推測するには、休止状態から起動する段階で問題があるのではなく、休止状態に入る段階で問題が発生しているように思います。つまり、休止前の状態が正しくhiberfil.sysに保存されていない、ということです。しかし、Windowsは休止状態になったことをどこかに記録していて、次回電源を入れるとその記録に従って、壊れたhiberfil.sysから起動しようとして失敗する、というのが私の推測です。

Windows8からは、高速スタートアップ設定時にもこのhiberfil.sysにカーネル&ドライバの情報を保存しようとしているのではないかと思います。そのせいで、高速スタートアップ+シャットダウンからの起動もできない状態に陥っていると考えられます。

この方法で直せるのが確かだとしても、あくまでも対症療法でしかありませんね。そもそもWindows Update後に休止状態から起動できなくなってしまうこと自体が問題で、それに対する対策ではありませんから。

とりあえず、これでまたしばらく様子見です。

1 件のコメント:

  1. 7/13日、PCを立ち上げようとするとまた起動しない状態になっていました。しかたがないので、いつものようにUSBメモリからブートして、Windows8.1を起動するよう指定すると、今度はブート(コールドブート)します。

    つい先日7/10日ごろまでは、ちゃんと起動できていたのですが、それ以後、何があったのか、何故起動できなくなったのかは不明なままです。
    が、とりあえず、hiberfil.sysの削除&再生成をやってみました。すると、今度はシャットダウン後も、(高速スタートアップで)起動できる状態に戻りました。やはり、hiberfil.sysを作り直す方法は有効な方法のようです。

    返信削除