君は100%?――Windows 10仮想マシンで発生した原因不明のCPU使用率問題:山市良のうぃんどうず日記(118)(2/2 ページ)
2018年1月のWindows Updateは、Spectre/Meltdown問題で大変でした。まだ、PCベンダーからのマイクロコード提供待ちという状況でしょう(その対策されたはずのマイクロコードでも、問題が発生しているようです)。この問題とは関係ありませんが、筆者のテスト環境では2018年1月の更新で、とてもクレイジーなHyper-V仮想マシンに遭遇しました。同様の問題で悩んでいる人がいるかもしれないので、正常化までをレポートします。
ネット切断でCPU使用率が改善、パッチのダウンロード&インストールで完了
CPU使用率がどうにかならないか、いろいろ試した結果、ネットワーク接続を切断することで、ある程度CPU使用率が改善することが分かりました(ただし、若干高い状態)。エラーが発生するたびに、Windowsエラー報告が何かを送信しようと繰り返していたようです。そこで、別のPC(Hyper-Vホスト)でダウンロードした更新プログラムパッケージ(.msu)を仮想マシンにコピーし、ネットワークを切断した状態でインストールを試みました。更新プログラムのインストールには3時間ほどかかり、その後の再起動にはさらに40分かかりましたが、無事、2018年1月の累積的な更新の最新ビルドを適用することができました(画面4)。
再起動後、Windows Updateを実行して残りの更新プログラムをインストールしました。今度はそれほど時間もかからず、CPU使用率も許容される範囲に抑えられました(画面5)。イベントビューアーで「システム」ログを確認すると、サービス強制終了の問題も発生していません。どうやら、全てが正常に動作しているようです。
なお、CPU使用率が改善した後の最初のWindows Updateの前に、本連載の以下の回で紹介した「Windows Updateの正常化テクニック」(筆者の経験に基づくもの)を念のために実行しておきました。その効果が関係しているかどうかは不明です。
- Windows UpdateとIaaSクラウドは忍耐が試される?(本連載 第96回)
今回はこれでWindows Updateを正常化できましたが、もし、Windows Updateの影響で正常に起動しなくなった場合の更新プログラムのアンインストール方法については、以下の記事を参考にしてください。
- セーフモードでも起動できないという悪夢からの脱出[その1](本連載 第9回)
- セーフモードでも起動できないという悪夢からの脱出[その2](本連載 第10回)
仮想マシン環境では、仮想HDD(VHDやVHDX)をローカルマウントして、オフラインイメージに対して「DISM」コマンドを実行し、更新プログラムをインストールまたはアンインストールするという方法もあります。その方法については、以下の記事で紹介しました。
- 最近のWindows Updateは、本当にどうかしている(と思う)(本連載 第103回)
おまけ――「System32\CatRoot」は絶対に削除してはいけない!
実は、今回のCPU使用率問題を解消するために、何度もチェックポイントを戻してさまざまな方法を試しました。その理由は、更新プログラムのインストールにあまりに時間がかかるため、途中で戻して別の方法を試してみたからです。結局、2018年1月の累積的な更新プログラムのインストールを完了するために、3時間40分待つ必要がありました。最終的なレポートは成功した操作だけをピックアップしたものです。
さまざまな方法を試す中、決してやってはいけない操作ミスをしてしまいました。それは、「C:\Windows\System32\CatRoot」の削除です。筆者はWindows Updateを正常化する方法として、主に「C:\Windows\SoftwareDistribution」のリセット(再構築)だけを行います。しかし、以下のMicrosoftのサポート技術情報では、それ以外の操作を含む、より汎用的な手順が記されています。その中に「C:\Windows\System32\catroot2」のリネームがあるのですが、「catroot2」を「catroot」と見間違えたことと、リネームではなく、手っ取り早く削除してしまったことが重なって、大変なことになりました。
- Windows Updateのコンポーネントをリセットする方法(Microsoft サポート)
「C:\Windows\System32\CatRoot」を削除して再起動すると、Windowsのシステムコンポーネント(.exeや.dll)やドライバが全て発行元不明のファイルとして扱われてしまうのです。例えば、「ユーザーアカウント制御(User Account Control:UAC)」のダイアログボックスは、通常の青帯のダイアログボックスではなく、黄色や赤帯の警告表示になります(画面6)。
そして、「Windows Defender」のGUIは初期化に失敗します。また、その後のWindows Update後に重要なサービスが開始できずにブルースクリーン(Blue Screen of Death:BSoD)で停止してしまいました。見た目がおどろおどろしくて、マルウェアにでも感染したような感じです。
「C:\Windows\System32\CatRoot」には、Windowsが信頼できるコンポーネントのデジタル署名を検証するために使用される「カタログファイル(.cat)」が格納されています。「C:\Windows\System32\CatRoot2」は再生成されますが、「C:\Windows\System32\CatRoot」はディレクトリが作成されるだけで中身は空っぽです。「C:\Windows\System32\CatRoot」にあったカタログファイルが消えてしまった、署名を検証できなくなり、信頼できないファイルとして扱われてしまったというわけです。
Windowsのトラブルシューティングでは、コマンド操作が必要になる場合がありますが、このようなリスクが伴うことをあらためて考えさせられました。
この問題をどうやって解消したか知りたいですか? 今回の場合、それはとても簡単なことでした。仮想マシンのチェックポイントを戻すだけです。物理マシンの場合は、同一OS、ほぼ同一構成のPCにある「CatRoot」の内容を問題のマシンにオンラインまたはオフライン(正常起動しない場合、Windows回復環境などを使用して)でコピーすることである程度解消すると思います。ただし、「CatRoot」を以前の状態に完全に復元できない限り、一部のファイルの署名検証で問題が残るかもしれません。
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- プロセッサの脆弱性問題、Azureは対策済み、オンプレミスの対応策は?――Windows関連のまとめ
2018年の年明け早々、「Meltdown」や「Spectre」と呼ばれるプロセッサの脆弱性問題が公表され、IT業界全体でゼロデイ攻撃のリスクが高まっています。Microsoft AzureおよびMicrosoftのその他のクラウドサービスは、2018年1月4日時点で既に対策が完了しているとのことです。 - 今度はWindows 7のWindows Updateでトラブル──でも、解決策はあります!
2017年12月4日ごろから、Windows 7で「Windows Update」を実行できないというトラブルに遭遇しているユーザーが少なからずいるようです。Microsoftによる公式なアナウンスや回避策は今のところないようですが、取り急ぎ、問題を解消できる可能性がある方法を紹介します。 - 年の初めに再確認、2018年にサポートが終了するMicrosoft製品は?
Microsoftは同社の製品およびサービスについて、明確なサポートポリシー(ただし、途中で変更あり)に基づき、更新プログラムを含むサポートを提供しています。2018年は主に10年前にリリースされた製品がサポート終了を迎えます。どのような製品があるのか、年の初めに再確認し、使用していないかどうかを調べておきましょう。 - Windows Defender Application Guardで実現するセキュアなブラウジング環境――Windows 10の新しいセキュリティ機能(その2)
前回は、間もなく企業向け(半期チャネル)に配布が始まるWindows 10 Fall Creators Updateに搭載された新しいセキュリティ機能「Exploit Protection」を紹介しました。今回は、もう1つのセキュリティ機能「Windows Defender Application Guard(WDAG)」が提供する安全なWebブラウジング環境を紹介します。