treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Windows10 1903のアップグレードに失敗した

Windows10の大型アップデートであるバージョン1903。
1台のThinkPad T420sでは上手くいったのですが、同じ(部品の構成が違う)ThinkPad T420sではエラーで終了してしまった。
そんなエラーの状況をご報告です。

ちなみに、この記事では解決をしていません。調査だけで時間オーバーになってしまいました。(しかし1809へのロールバックは自動で実行されたのでそのままでペンディング)

1903適用時の動き

1903のアップグレードを試みたものの、
Windows Update画面で正常終了
そのあと、再起動⇒再起動後の適用動作も実行される
適用動作中に再起動(たぶん1回か2回ほど再起動された)
この途中でブルースクリーンが発生し、大型アップグレードが実行されないまま、以前のバージョン(1809)に(ロールバックされ)修復された、という状況。
突然だったので画面の写真は撮れなかったけど、60%くらいまでの進捗は正常に完了していて、その後(恐らく70%~80%くらい?)にブルースクリーンで落ちたような。

詳しく(というほどでもないけど)調査

イベントビューアに記録されているエラー

f:id:treedown:20191204171154p:plain
同じくWindows Updateの履歴にもエラーが記録されています。

f:id:treedown:20191204171217p:plain

機能更新プログラムの箇所に
「Windows 10、バージョン 1903 の機能更新プログラム」
「%DATE% に インストールに失敗しました - 0xc1900101」
と記載があるのが見て取れます。

エラーコード「0xc1900101」で探してみると、以下のページが見つかりました。
■Microsoft Windows10アップグレードエラーの解決-解決手順
https://docs.microsoft.com/ja-jp/windows/deployment/upgrade/resolution-procedures

このURLを見ると、0xC1900101の子コードといえるエラーコードが存在して、そのエラーコードによって注目するポイントが変わってくるらしい。

自分でも忘れないようにメモ

  • 0x20004:古くなったドライバが原因でWindowsセットアップがエラー
  • 0x2000c:古くなったドライバが原因で不明なエラーが発生
  • 0x20017:ドライバで無効な操作が発生しエラー
  • 0x30018:ドライバがsetup.exeに応答しなくなる
  • 0x3000D:ディスプレイドライバの問題が原因でインストール失敗
  • 0x4000D:ドライバ構成で問題が発生、互換性のないドライバが存在する
  • 0x40017:障害のあるドライバが原因で2回目の再起動後のアップグレードが失敗する

どれも割と共通した回避策(URL先の文書では軽減策と記載)が対策として提示されています。

  • ウィルス対策ソフトをアンインストールしてみる
  • 周辺機器を取り外す(接続されている周辺機器を全て取り外す)
  • ドライバを最新に更新する
  • ディスプレイドライバの更新やアンインストール(0x3000Dのみ)
  • ドライバやBIOSの更新をする
  • Windows10クリーンブートを実施しアップグレードを試行

うーん。そういや、USBでうっかり接続していた古いスキャナがありました。

エラーログ見てみよう

コード0xC1900101 - 0x20017の対処の中には、
「%windir%\Panther ディレクトリの Setuperr.log ファイルと Setupact.log ファイルを開いて、問題のドライバーを特定します。」
という記載もありました。
探してみたのですが、過去のアップグレードのログファイルしかない、よくよく探してみると、「C:\$WINDOWS.~BT\Sources\Panther」に失敗したアップグレードのログを発見できました。
容量が125MBあるテキストファイル…。「 Error 」という箇所だけを抽出してみました。それでも長い…、最後のほう(処理がストップする要因の可能性が高い部分)だけ見てみると…、
--------------------------------------------------------------
setupact.log(562531): %DATE% %TIME%, Info CSI 00000710 Warning: Overlap: Registry value collision found under key \REGISTRY\USER\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs\ for Disable, only one component should set this value
setupact.log(576071): %DATE% %TIME%, Error [0x080831] MIG CSIAgent: Invalid xml format: FormatException: Component with display name: Plugin/{%GUID%} already loaded __cdecl Mig::CMXEMigrationXml::CMXEMigrationXml(class Mig::CPlatform *,class UnBCL::String *,class UnBCL::XmlDocument *,class UnBCL::String *,class UnBCL::String *)
setupact.log(623304): %DATE% %TIME%, Warning SP RemoveSourceHardlinks: Error while setting short name GAMEBA~1.EXE for \\?\C:\Users\%USERNAME%\AppData\Local\Microsoft\WindowsApps\GameBarElevatedFT_Alias.exe. Error: 0x00000005
setupact.log(623305): %DATE% %TIME%, Warning SP RemoveSourceHardlinks: Error while setting short name MICROS~1.EXE for \\?\C:\Users\%USERNAME%\AppData\Local\Microsoft\WindowsApps\MicrosoftEdge.exe. Error: 0x00000005
setupact.log(623433): %DATE% %TIME%, Info SP Service error control: 1
setupact.log(623448): %DATE% %TIME%, Info SP Service error control: 3
setupact.log(623464): %DATE% %TIME%, Info SP Service error control: 1
(省略)
setupact.log(623685): %DATE% %TIME%, Error SP Could not create the service, error: 0x00000431[gle=0x00000431]
setupact.log(623727): %DATE% %TIME%, Info SP Service error control: 1
setupact.log(623743): %DATE% %TIME%, Info SP Service error control: 0
setupact.log(623758): %DATE% %TIME%, Info SP Service error control: 1
(省略)
setupact.log(624281): %DATE% %TIME%, Warning IsNarratorRunning: Error finding window NarratorUIClass; HR = 0x0
--------------------------------------------------------------

結局、エラーログを見てもピンとくるエラーは見当たらず。
(分からないというほうが正しい)

考えた要因

とりあえず、前出のURL<解決手順 - Windows IT 担当者 | Microsoft Docs>をざっと読んだところから、以下の要因が考えられました。

  1. USB機器が接続された状態で大型アップデートを実行したこと
    ⇒対策:USB周辺機器を外して実行してみる
  2. システムドライブのSSD以外に内蔵HDD(SATAディスク)が接続されている。
    ⇒対策:内蔵ドライブをシステムドライブのSSDだけにして大型アップデートを実行してみる
  3. ウィルス対策ソフトをアンインストール(当該環境ではスーパーセキュリティZERO利用)

なんかどこでも公開されていそうな情報だけになってしまいました。この辺の考えられる要因を取り除いて、もう一回チャレンジしてみたいところですが、次に時間を取れるのはいつのことか。