WhitePotageのブログ

ミント菓子はかっらーいのがイイんだよねと思っている人

meltdown対策パッチをあてたら、WHEA-Logger 19 「内部パリティ エラー」 が爆発してしまった人へ

ちょっと席を外して戻ったら、いつの間にかPCが落ちている。
故障を疑ってイベントログを開くと、ログが変なもので埋まっている。
最近、こんな目にあうことが多いな…、全くWindowsってやつはよぉ…

と想ったので調べてみた。
調べたら、英語圏に偉い人がいたのでわかったけど、日本語のページが出てこなかったのでなんとなく書いて置いておくことにしたよ。

症状

このブログエントリは、下記の特定の場合についてのみ記載されています。
あてはまらない方は、対応を実行しても直らないと思いますのであしからず…。

  • Windows OS。
  • 2018年1月の、Meltdown/Spectre 対策パッチ (KB4056891/KB4056892/KB4056894 等)をインストールした。
  • 対策パッチのインストール後、主に起動時・再起動時に、下記のイベントログが複数回(ときには爆発的な回数で)記録される。
    f:id:WhitePotage:20180212194723p:plain

    ソース:WHEA-Logger、 イベントID:19
    ユーザー:LOCAL SERVICE
    「修正されたハードウェア エラーが発生しました。
     エラー ソース: 修正されたコンピューター チェック
     エラーの種類: 内部パリティ エラー (後略)」

2018年1月の脆弱性ってのはCPUの処理内に存在するので、根本的にはCPUを変える必要がある。んが、そうは言っても何か対策しなくちゃなので、CPUがそのままでも、パッチを当てたOSには「マイクロコード」を実行させることにした。

…んが。 機種や構成によっては、副作用でこんな状況に陥るみたいですね、コレ。

手っ取り早い対応方法(暫定対応)

結論から書くと、レジストリを1件追加すると黙ります。
ものすごくお急ぎの方はこれだけ実行してください (^^;)
管理者権限のコマンドプロンプトへコピペ ↓

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 1 /f

マイクロソフトのサイトにも同様の対応が記載されていますが、そのまま書いたんじゃブログの意味がない。 上記コマンドのパラメータ値はサイトとは異なる物になっています。

スイッチの意味

さきほどのレジストリは、リンク先にもある通り「パッチの効果を殺す」スイッチです。
つまりパッチが当たっていない状態と同じになるので、そりゃー黙るわけですが、要するに脆弱性対策されなくなったよ、ということは覚えておくべきです。
何を殺すのか? については記載がないけれど、海外の有難い人が分析してくれました。

https://forums.lenovo.com/t5/forums/v3_1/forumtopicpage/board-id/tp01_en/thread-id/121585/page/2

01-11-2018 09:48 AM の書き込みがそれ。

マイクロソフトは、レジストリ値「FeatureSettingsOverride」に「3」をセットせよと言ってますが、これを二進数に直すと「11」。
この左側の「1」がmeltdownの無効スイッチで、右側の「1」がspectreの無効スイッチだと言ってくれてます。ひええ。

この両方の無効スイッチをON側 (=1、つまりマイクロコードの対策をOFF) にすることで、冒頭の副作用であるところの WHEA-Logger エラーは解消するんだが、実はこのエラーに影響するスイッチは片方だけ、らしい。

まとめると、「FeatureSettingsOverride」にセットする値は

00 = 十進の0 :WHEAエラー出る、meltdown対策=有効, spectre対策=有効
01 = 十進の1 :WHEAエラー黙る、meltdown対策=有効, spectre対策=無効
10 = 十進の2 :WHEAエラー出る、meltdown対策=無効, spectre対策=有効
11 = 十進の3 :WHEAエラー黙る、meltdown対策=無効, spectre対策=無効

ってことになる。
対策効果を最大限失わず、でもエラーは消したい、っていう場合はマイクロソフトの言うとおりの「3」ではなく、少なくともmeltdown対策だけは有効を維持する「1」が必要十分だよ、と先のリンクの回答者さんは言っているようです。

そして自分のところのPCも、この設定値「1」で確かにエラーが出なくなり、予期せぬダウンから解放されたのでした。 見ず知らずの回答者様ありがとう!

暫定対応ですよ!

というわけで、パッチ適用後に WHEA-Logger が爆発してしまった不運なPCは、spectre対策を無効にすることで動作が復帰するわけです。

じゃー、いつまで無効にしておくのさ?

というとアレだ。 次のパッチが出るまでだろうね。 待ってる!

そして、次のパッチの効果を消さないためにも、今回変えたレジストリのことは忘れちゃいけないんだ。 きっと。

面倒くさいなあもう……。

 


 スポンサー