今年の春に WinRE の脆弱性対策のためのオフラインパッチが回復パーティションのサイズ不足でことごとく失敗する可能性について書きましたが...
この脆弱性対策パッチはやっかいだ(セキュリティのことではなく、WinRE.wimに対するオフラインパッチが) 2023/03/20
アップグレードの繰り返しで無駄に増えたWindowsの回復パーティションを“スッキリ”と削除する方法 @IT
https://atmarkit.itmedia.co.jp/ait/articles/2304/05/news008.html
2023年6月の C リリースから、Windows 11 ver 22H2以降では、CUによってWinREが更新されるように変更されたそうな。で、回復パーティションの容量が不足していると、エラーメッセージ「Windows Recovery Environment servicing failed.」を受け取るって書いてあるんですが、そんなエラー見たことが無い(Windows Updateの UIにも、イベントログにも、Get-WindowsUpdateLog にも、ReportingEvents.logにも無い)。
KB5028997: Instructions to manually resize your partition to install the WinRE update
https://support.microsoft.com/en-us/topic/kb5028997-instructions-to-manually-resize-your-partition-to-install-the-winre-update-400faa27-9343-461c-ada9-24c8229763bf
こちら、春に回復パーティションを1GB近くに広げておいた PC。2023年9月Bリリースのタイミングで WinRE.wim が更新されている。
こちら、Windows標準の回復パーティションのまま。2023年9月Bリリースのタイミングで WinRE.wim が更新されなかった(
更新のインストールは成功扱い)。
つまり、回復パーティションのサイズが十分なら更新して、不十分ならサイレントに失敗(更新プログラムのインストールは正常に完了扱い)しているように見える。
例えば、回復パーティションが現在、660MBくらいの場合、以下の手順で960MBくらいに拡大できる。次の CU に備えてサイズを拡張しておけば、次の CU 時に WinRE.wimが更新されるはず。
コマンドプロンプトを管理者として起動して、
reagentc /info (確認)
reagentc /disable (WinRE を無効化C:\Windows\System32\Recovery に現在の Winre.wim を退避)
DISKPART
DISKPART> LIST DISK
DISKPART> SELECT DISK 0 (OSディスクが0の場合)
DISKPART> LIST PARTITION
DISKPART> SELECT PARTITION 3 (OSパーティションが3の場合)
DISKPART> SHRINK DESIRED=300 MINIMUM=300 (OSパーティションを300MB縮小)
DISKPART> SELECT PARTITION 4 (回復パーティションが4の場合)
DISKPART> DELETE PARTITION OVERRIDE
DISKPART> CREATE PARTITION PRIMARY
DISKPART> FORMAT QUICK FS=NTFS LABEL="Windows RE tools"
DISKPART> set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
DISKPART> gpt attributes=0x8000000000000001
DISKPART> EXIT
reagentc /enable (WinREを有効化)
reagentc /info (確認)
試しに、Windows 11 ver 22H2を新規インストール後、すぐに回復パーティションを1GB近くに拡張して、Windows Update したら、CU のインストール時にWinRE.wim が確かに更新されている(Procmon.exe でファイルパスを監視)。
既にインストール済みの CU によって、WinRE が更新されることはない。回復パーティションを拡張したら、次の CU(9月のCや10月のB)のときに更新されるはず。回復パーティションを既定のサイズのまま放置して置いた場合、インストール時の WinRE.wim のまま。WinRE.wim を更新できないエラーは出ない(と思う)ので、この変更について知らなければ、気が付くこともない。次の FU(機能更新)のときに、更新されることになりますが、その後のWinREの更新を前提とした回復パーティション確保されるのかは不明。
追記)winre.wim が更新されても、WinRE のコマンドプロンプトのビルドベースが最新になるわけではないらしい。新規インストール(22621.382)→更新後(22621.382、春にオフラインパッチしたのは.819)
さらに追記)PEのOSビルドは変わりませんが、ntoskrnl.exe (10.0.22621.1844)とか多くのコンポーネントが更新されていました。Windows Update だと LCU でインストールされるんだと思いますが、スタンドアロンパッケージだと Safe OS Dynamic Update for Windows 11 Version 22H2として出ている(でも.cabなのでインストールする方法は不明)。
2023-06 Setup Dynamic Update for Windows 11 Version 22H2 for x64-based Systems (KB5027318)
KB5027318: Setup Dynamic Update for Windows 11, version 22H2: June 27, 2023
https://support.microsoft.com/help/5027318
KB5028495: Compatibility update for installing and recovering Windows 11, version 22H2: July 26, 2023
https://support.microsoft.com/help/5028495
KB5029863: Compatibility update for installing and recovering Windows 11, version 22H2: August 22, 2023
https://support.microsoft.com/help/5029863
Safe OS Dynamic Update for Windows 11 Version 21H2 も出てた。
KB5027317: Setup Dynamic Update for Windows 11, version 21H2: June 28, 2023
https://support.microsoft.com/help/5027317
KB5028312: Setup Dynamic Update for Windows 11, version 21H2: July 11, 2023
https://support.microsoft.com/help/5028312
KB5030326: Setup Dynamic Update for Windows 11, version 21H2: September 12, 2023
https://support.microsoft.com/help/5030326
さらに、さらに追記)
Windows Update の様子をトレースしてみたところ、LCU (2023-09BだとKB5040219)のタイミングで C:\Windows\SoftwareDistribution\Download\*\ のダウンロード先に KB5029863 がダウンロードされていて、C:$\WinREAgent の下でごにょごにょ更新したあと、WinRE を回復パーティションに再登録しているっぽい。で、更新されなかったときの痕跡は、C:\Windows\Logs\WinREAgent\setupact.log に見つかった。
9/27 追記)LCU で WinRE が更新される変更は、Windows 11 ver 21H2 でも確認しました。Windows 11 ver 22H2 限定の変更ではなかったです。