俺#

新潟市でIT業を営むおっさんのブログ。

Windows 11がアップデートに失敗する要因を調査した話。 #windows #windows11 #windowsupdate #SetupDiag #windbg

幸いなことにこれまでWindows Updateで問題に遭遇することはあまりなかったが、ついに「Windows 11, version 25H2」への更新で引っかかった。


0xC1900101 で始まるエラーはドライバーのエラー」だそう。あ~、近頃はもう細かい事はどうでも良いので、現在使っているバージョンすら気にしてなかったな。確認しよう。

ほう。「23H2」とな。これ古いよね。ウチには「24H2」が降ってこなかったのか。まぁいいや。「23H2」から「25H2」への直接アップデートは可能だが「24H2」を経由しないとダメなパターンもあるそうで。面倒くさいから「24H2」を経由するのは最後の手段にしたいところ。

「SetupDiag」で原因となった処理を突き止める

大型アップデート(事実上のメジャーバージョンアップ)の場合、失敗するとC:\直下に「$WINDOWS.~BT」という残骸フォルダが残る。

このフォルダは隠しフォルダなので、エクスプローラーのオプション>フォルダーオプション>表示で「隠しファイル、隠しフォルダー、及び隠しドライブを表示する」の設定を行わないと表示されないので念の為。

残骸フォルダにはWindowsアップデートの動作状況を記録したログファイルやメモリダンプが保存されている。ログファイルについては

learn.microsoft.com

に説明があるが、ログを自動的に解析して問題個所をレポートしてくれる「SetupDiag」というツールがあるのでこれを使用するのが楽である。

learn.microsoft.com

  1. 適当なフォルダに「SetupDiag.exe」をダウンロードする。
  2. コマンドプロンプト」を開く
  3. 以下のコマンドを実行する。

C:\Downloads\SetupDiag.exe /Output:C:\Downloads\SetupDiag.log

しばらくすると以下の様に結果がファイルとして出力される。

「setupdiag.log」が出力されたレポート。「Logs.zip」には「$WINDOWS.~BT」から回収した解析対象のファイルが格納されている。

レポートには以下のように記されていた。

DebugSetupCrash
Found qualifying memory dump during setup, but the debugger binaries were not found. Either examine the memory dump here: C:\$WINDOWS.~BT\Sources\Rollback\WER\ReportQueue\AppCrash_WLANExt.exe_287181b90c05a19fec314a0b5f71f51af24274a_1def888c_cab_5bf2d9ca-93c6-4081-9ed5-c6450729445c\WER.acaa07bf-dcc2-43d1-921c-8cabaa35f86c.tmp.mdmp or install the debugger tools from here: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/ to determine the failure.

だいたい「WLANExt.exeがクラッシュしたぜ。debugger toolsでメモリダンプファイル(.mdmp)を調査しようや。」みたいなことを言っている。素直に従ってみよう*1

WinDbg」でエラーが発生したモジュールを特定する

以下から「WinDbg」をインストーする。

learn.microsoft.com

WinDbg」を起動したら、File>Start debugging>Open dump file>Browse...で「setupdiag.log」に記載された.mdmpファイルを選択してOpenする。

Commandタブに「For analysis of this file, run !analyze -v」と指示されるので、素直に「!analyze -v」リンクをクリックする。

クラッシュしたモジュール名「iwmssvc」が判明したので、素直に「iwmssvc」リンクをクリックする。


CompanyName: Intel(R) Corporation
ProductName: Intel(R) PROSet/Wireless

インテル!お前か!

というわけでこのドライバを更新なりアンインストールなりすれば成功するようになるのではないだろうか。しかしWinDbgもモダンになったもんだ。

https://www.kitploit.com/2013/12/windbg-v6122633-debugging-tools-for.html より)

こんなイメージしかないわ。

*1:まぁ「WLANExt.exe」なので、無線LAN関連だというのは察しが付くし、無線LANのデバイスはひとつしかないので犯人がヤツなのはこの時点でほぼ確定なんだけどね。