私は如何にWindows10 1903へのアップデート失敗を克服したか

3か月ほど前の話。
結構古いPCとなってしまった、東芝dynabook KIRA V63をWindows 10の1903にアップデートしようと思って、何回か実施したのだけれどもことごとく失敗した。途中までうまくいくのだけれど、インストールが進捗し70%を超えたあたりの再起動でBSODが発生し、1809にロールバックしてしまうのだ。ロールバック後のエラーコードをみると0xc1900101 0x40017というものだが、グーグルさんに聞いてもあまり参考にならなかった

まあせっかくBSODも出ていることだし、ダンプ解析すれば一発で原因がわかるだろうと思い、ダンプファイルを解析しようと思ったのだが、ダンプファイルは存在しなかった。こうなると、手に負えないので1909が出るまで待って、1909を試してもうまくいかなかったら考えるかと思い、一旦アップデートをあきらめた。

今日の話。
visualstudio のサブスクリプションの契約者にWindows10の1909の配布が始まったので、早速入手し、KIRAに対してアップデートを試してみたところ、やっぱり同じ現象が発生してインストールがうまくいかないのであった。

さて困ったと思い、いろいろ調査したところ、以前グーグルさんに聞いたときは存在しなかった情報を発見した。なんとBSODに伴うwindowsロールバックの際はダンプファイルは、c:\$Windows.~bt\Sources\Rollback\setupmem.dmpにあると記載されているではないか。

それならダンプを解析すれば簡単だ。Windowsのダンプ解析はwindbgでできる。
Windbghttps://so-zou.jp/software/tech/tool/debugger/windbg/この辺で使用方法を確認すればよい。!analyze -vすればBSODの原因となったであろう部分がかなり正確に判明する。大体の場合はハードかドライバーが原因で、ドライバーが原因なら更新かアンインストールすればよいだけだ。

さて、ダンプファイルを解析したところ、module nameにarcsec.sysと記載されている。どうやら原因はarcsec.sysというファイルのようであった。早速このファイルが何なのか確認したところ「TotalMedia Theatre」というソフトの一部であることが判明した。「TotalMedia Theatre」をアンインストールして再度1909を適用してみたが、やはりarcsec.sysでBSODを起こしてしまう。どうやらアンインストールしてもc:\windows\system32\driversにarcsec.sysは残っているようだった。arcsec.sysファイルはなぜか削除ができないので、おそらくドライバーかサービスとして組み込まれちゃっているのだろう。サービスなら自動起動を停止して再起動すれば削除できるはずなので、サービス一覧を確認したが、ArcSecとかTotalMediaはなさそうだった。であればレジストリ自動起動を阻止するため、\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\を見るとそのままずばりArcSecキーがあったので、取り急ぎStartに4を設定することで無効化し再起動したところ、ArcSecが削除できるようになっていたので削除した。
再度1909をインストールしたところ今度は無事にインストールが行えたのであった。

すべては、変なところにダンプファイルを置いておくMSが悪いと思ったものの、おそらく複数回発生するダンプの上書きを回避するために場所を変更したんだろうと思い、まあ許してやらんでもないと思ったのであった。

ということで、windows10のアップグレードでBSODで失敗する場合のリカバリ手順ができたのは喜ばしいのである。