SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows Server で KB5034439 の適用がエラーとなった場合の対応

leave a comment

KB5034439 が Windows Server 2022 向けに提供されましたが、私の環境ではエラー (0x80070643: ERROR_INSTALL_FAILURE) となるものがありました。

本 KB の修正については、CVE 2024-20666 が元になる情報となっており、Windows Server OS については Windows Server 2022 が対象となります。

これらの環境のデフォルトの設定では回復パーティションの空き領域が 250MB 未満となるため、エラーが発生するようです。

KB5034439 でエラーが発生した際に実施が必要な作業としては KB 内のリンクに記載がされており、回復パーティションのサイズ変更が必要となります。

 

手元ですぐに確認できる環境が KB5034439 だったため、本投稿では Windows Server 2022 ベースの環境で確認をしていますが、前述のとおり CVE-2024-20666 の対応のため、クライアント OS となる Windows 10 21H2, 22H2 / Windows 11 21H2 も対象となっています。

これらのクライアント OS でも回復パーティションのサイズによっては、KB の適用時にエラーが発生する可能性があるようです。

 

エラーが発生した場合、回復パーティションのサイズ変更 / 再作成が必要となるため、KB5028997: WinRE 更新プログラムをインストールするためにパーティションのサイズを手動で変更する手順 に記載されている に記載されている回復パーティションのサイズ変更の手順を実施する必要があります。

 

現状、適用対象外となる Windows RE が無効な環境でも KB を対象として認識してしまい、これは既知の不具合となっているので、本 KB の適用について、最終的に必要となる対応がどのようになるのかは少し静観となりそうです。

 

KB5034439 適用時にエラーが発生するケース

KB の適用対象となるかどうかを確認する

エラーが発生するかどうかについては「reagentc /info」を実行して、Windows RE が「Enabled」になっている環境かどうかが最初に確認すべき内容となります。

「Enabled」になっている場合は、Widnows RE が含まれているため、KB の適用対象となります。

image

「Disabled」となっている環境については、該当するバージョンの OS を使用していても KB の適用対象外となるため、Windows Update を実行しても適用対象外として更新プログラムは認識されないようになっているはずです。
(Windows Server 2022 で明示的に無効にした場合や、Market Place の OS インストール済みイメージの Windows Server 2022 Azure Edition は初期状態で Disabled になっているため、適用対象外として、Windows Update を実行しても必要な更新として認識されないようになっています)

image

 

KB5034439 適用時に発生するエラー

適用対象となっている環境で、Windows Update で KB5034439 を適用しようとすると、次のエラーが発生した状態となります。

image

エラーの内容としては、KB に記載されている「0x80070643 (ERROR_INSTALL_FAILURE)」が発生しています。

KB5034439 は Windows RE に関しての更新となっており、Windows RE を格納しているパーティションサイズが小さい場合にこのエラーが発生します。

私の環境では Windows Server 2022 を標準でインストールした環境となりますが、この環境の場合、Windows RE の回復パーティションのサイズは 597MB となっており、このサイズではエラーが発生してしまいました。
image

このパーティション構成は Azure Stack HCI 22H2 の環境でも同様で、こちらの環境でも同様のエラーが発生しました。(23H2 になると回復パーティションのサイズが 626 MB になっており、23H2 では問題は発生しませんでした)

image

 

エラーの対応方法 (Widnows Server 2022 で実施した結果)

現状、エラーの対応方法としては KB5028997: WinRE 更新プログラムをインストールするためにパーティションのサイズを手動で変更する手順 に記載されている手順を実施し、Windows RE のパーティションのサイズを変更する必要があります。

ディスク / パーティション番号は環境によって変わる可能性がありますが、私の環境では次のコマンドを実行しています。reagentc /disable を実行すると Winre.wim が作成されますので、作成されたことを確認してから以降の作業を実行するようにしておくとよいかと。Wirre.wim が作成されないと、enable する際にエラーとなります。

reagentc /disable
# C:\Windows\System32\Recovery\Winre.wim が作成されたことを確認してから以降の作業を実行する

diskpart
select disk 0
select part 3
shrink desired=250 minimum=250
select part 4
delete part override
create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac 
gpt attributes =0x8000000000000001
format quick fs=ntfs label=”Windows RE tools”
exit

reagentc /enable

Windows Server 2022 の標準インストールでは回復パーティションが最後に作成されていますので、その前のパーティションを縮小し、回復パーティションを再作成することで対応を行っています。(手順通り作業すると、848 MB の状態となります)

image

この状態であれば、Windows Update を使用して KB5034439 を適用することができました。

 

エラーの対応方法 (Azure Stack HCI 22H2 で実施した結果)

KB が提供された当初は、Azure Stack HCI 22H2 でも Windows Update で更新プログラムが認識されていたのですが、Azure Stack HCI 22H2 は本問題の影響を受けないことが確認されたため、現在は適用対象外となり KB は検出されなくなりました。

 

Windows RE が無効な環境に KB5034439 を適用してみる

最新の KB の情報で回復パーティションが存在しない環境では更新プログラムの適用は不要と明記され、検出も行わわれなくなりました。

しかし、次のような手順で Windows RE が無効となっていた環境に対して KB5034439 を適用することができます。

winre.wim の入手

Azure Edition は ISO ファイルを使用してアップグレードを実行する から ISO をダウンロードすることができます。

Windows RE のカスタマイズ に記載されていますが、install.wim をマウントし、Windows\System32\Recovery から winre.wim を取得することができますので、「reagentc /enable」を実行する前に winre.wim を取得して「C:\Windows\System32\Recovery」に配置することで「reagentc /enable」を実行した際に必要となるイメージを配置することができます。(winre.wim は「保護されたオペレーティングシステムファイルを表示しない」のフォルダーオプションを無効にする必要があるかと)

 

回復パーティションの構成変更

Azure VM の場合、ディスクサイズの拡張を考慮してだと思いますが、回復パーティションが後方ではなく前方に作成されています。

image

そのため、通常の Windows Server 2022 のように、上手く未使用領域を確保して回復パーティションを再作成することは難しいかもしれません。

reagentc /disable
diskpart
select disk 0
select part 4
shrink desired=800 minimum=800
select part 2
delete part override
create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac 
gpt attributes =0x8000000000000001
format quick fs=ntfs label=”Windows RE tools”
exit
reagentc /enable

 

このようなコマンドでパーティションの再作成を行うことはできるのですが、先頭に未使用のパーティションが作成された状態となってしまいます。

image

 

このような対応を行うことで、Marketplace の Azure Edition のイメージに対して KB5034439 を適用することができます。

CVE-2022-41099 の情報との関連性

問題が公開された当初は、CVE の問題を対応するためのスクリプト (PatchWinREScript_2004plus.ps1 / PatchWinREScript_General.ps1) についての情報がリンクされたものもありましたが、この情報は KB5034439 を適用した状態にするための対策ではなく、対応としては Windows RE のパーティションサイズの変更が必要となります。

スクリプトは CVE の対応として、WinRE パーティションを更新するものとなるようで、本対応を実施しても引き続き Windows Update による KB の認識はされてしまうため、パーティションサイズによってはエラーが発生する状態は維持されています。

 

まとめ

KB5034439 の適用については次のようになるようです。

  • KB のエラーを回避するためには DiskPart を実行して、Windows RE のパーティションサイズを増加させる必要がある
    • 手順による手動作業が必要となるため、明示的なコマンド実行によりパーティションの調整が必要
    • 現時点では、適用対象外の環境については Windows Update で検出されなくなっているため、適用外の環境では問題は発生しない
  • 環境によっては未使用パーティションが残ってしまう
    • UEFI/GPT ベースのハード ドライブ パーティション の既定のパーティションレイアウトになっている場合は未使用パーティションが残ることはない
    • 後方に回復パーティションが存在している環境は問題ないが、前方に回復パーティションが存在している場合は残る
Share

Written by Masayuki.Ozawa

1月 10th, 2024 at 8:50 pm

Posted in Windows Server

Tagged with

Leave a Reply