最初に注意書き。
今回の更新は、過去記事で「Windows8.1 update1 PCで、hiberfil.sysを無効にしていると、PCの設定変更が反映されないのではないか?」という疑問を掲載しているのですが、それに関連しています。
そして検証回数が少なく、再現性も乏しいため、妄想の域を出ません。
また、「我が家のWindows8.1マシンのKP41病」対策途中のメモページです。
ちなみに今回のKP41病については、おおよその答えは出ました。あと3日ほど安定作動の確認を行い、確信を持てた所で記事公開する予定です。
以下本文
いきなり脱線した方向からスタートします。
(つまり、この項目は本題とは関係ない)
非常に今更なのだけど、Windows8(無印)当時の情報で、「Windows8って、powercfg.exeで電源管理オプションの変更が出来なくなってない?」という疑問を投げかけている英文ページを発見しました。
発見したページは以下
▲powercfg.exe not working properly
当時から電源オプション周辺の挙動は、過去のWindows OSとは挙動が異なる部分があったようです。
※補足&参考リンク
【Windows 8.1 Preview版】powercfg.exe エイリアス一覧-ti-web.net blog
▲powercfg.exeで利用できるエイリアスの一覧です。
脱線終わり。本題に入ります。
私のWindows8.1PCでの挙動
私のPC環境では、上記powercfg.exeの変更は一応適用されているように見えます。
しかし、
1.電源オプションを変更
2.PCを再起動
3.電源オプションの変更が適用されている事を確認
ここまで行ったPCでも、KP41病発生(PCがハング)した後にリセットボタンで復帰させると、「電源オプション変更前」の状態に戻ってしまいます。。。
その他に発生したロールバック現象
上記powercfg.exeの変更以外でも、PCハング時のロールバックは発生しました。
今回のKP41発生の問題切り分けや、ネットワークの安定化を図る目的で
・IPv6の無効化
・IPv4のメトリック値の手動設定
などを行い、きちんとPC再起動したのですが、その後に再びKP41病が発生すると、設定が元に戻ってしまいました。。。
▲IPv6は一度無効化&PC再起動し、設定が反映されている事を確認したのだが、知らない間に元に戻ってしまった。
そして、毎回 設定が戻る訳では無いので ややこしい('Α`)
ドライバの再インストールが出来ない('Α`)
「USB無線LAN子機が上手く作動していないんじゃないか?」と無線LAN子機アダプタドライバーを一旦削除し、インストールしなおすと、何故だか無線LAN子機は認識不能になりました。
(ドライバがインストールされていない、と怒られる状態。何度再起動しても、何度ドライバインストールしなおしても認識されない)
子機そのものが壊れたのかな?と思いながら「システムの復元」を試し無線LAN子機を購入する前(約2週間前)の状態まで戻してからインストールし直すと、無線LAN子機はあっさりと認識され、作動し始めました。
うーむ。従来の手法ではドライバを正常に削除する事が出来ない場合がある感じです。
そして話が脱線してしまうけど、 Windows8.1の復元ポイントの効果は絶大だと感じました。こういったトラブルの際には信頼しても良いかもしれないです。
今回の現象について
Windows8.1 update1以降では、「hiberfil.sys無効にするとPC再起動時にPCに加えた変更が元に戻る場合があるのでは?」という検証がアチコチで行われているようですが、このPCは、ハイバネーション(hiberfil.sys)もページファイル(pagefile.sys)も、有効にした状態です。
これらを有効にしている場合でも、予期せぬシャットダウンの後は、直前に変更した設定が無視されてしまう感があります。
うーん。
Windows8.1 update1マシンは、「PCに何かトラブルが発生した」場合は、(トラブル修正を試みている場合でも)直前の復元ポイントまで巻き戻される仕様になっているんだろうか?
と勝手に妄想しちゃっています。
先に公開したページも、ロールバックが発生するのは「hiberfil.sysが無い」事が原因ではなく、「Windowsが正常に終了できない何かがあるのでは?」
という思いも生まれてきました。
その辺を踏まえながら、色々な方が検証されている情報をもう一度読み漁っている最中です。
自分用参考リンク
結構重要かも?Windows8.1 update1インストール後は再起動の動作が変わった?!!(現在ソース未確認) - 自作PCの道楽
とりあえずの対処方法
- Windows 8.1マシンをシャットダウンする時は、
コマンドプロンプトを管理者権限で起動し、「shutdown /s /f /t 0」と入力する。 - あと、重要な変更をした場合は、復元ポイントを作成しておく。
上記のコマンドでWindowsを終了されると、(PC起動時の速度は変わらないけど)シャットダウンにかかる時間が2倍くらい長くなります。高速スタートアップ設定を無効にしていても、「shutdown /s /f /t 0」の方がシャットダウンにかかる時間が長くなります。
復元ポイントを作成しておくと、強制的にシステムが元に戻ってしまう事も無い様に感じます(試行回数が少ないので何とも言えない)
従来のWindowsマシンと同様なシャットダウンを行いたい場合は、この方法を取るのが良いのかもしれないです (と勝手に妄想中)。
今の所の、私の仮定(妄想)
Windows8.1 Update1では、「Windowsが異常終了した」と判断されるとロールバックが発生する場合があると感じました。
「UACの仮想化」などの挙動が、Vista/7から大きく変更され、サンドボックス化されているのでしょうかね?
システムの重要な部分でサンドボックス化を行い、ウィルスなどの攻撃から身を守るような仕組みになっている・・・と考えると、なかなか堅牢な仕組みだと思いますが、従来のWindowsのような使い方をしたい場合、どうしたら良いか解らなくなります(^_^;