更新プログラム KB5034441 がエラーになる
2024年01月10日(日本時間) に公開された Windows 10 向けの更新プログラム「2024-01 x64 ベース システム用 Windows 10 Version 22H2 のセキュリティ更新プログラム (KB5034441)」について、「ダウンロード エラー - 0x80070643」などのエラーが発生してインストールに失敗するケースがあるようです。
現在、世界中でこのエラーについての報告があがっているようですので、今後 Microsoft 側で何らかの対処なり案内がなされるのではないでしょうか。それまでこちらのエラーは無視していればよいかと思います。
ただ、今すぐ何としてでもこのエラーを消し去りたい!という事情がある方もいるかもしれませんので、エラー解消のための手順を書いておきます。
エラーの原因は回復パーティションのサイズ不足
- KB5034441: Windows 10 バージョン 21H2 および 22H2 用 Windows 回復環境の更新プログラム: 2024 年 1 月 9 日
https://support.microsoft.com/ja-jp/topic/62c04204-aaa5-4fee-a02a-2fdea17075a8
こちらの Microsoft 公式ナレッジによると、エラーが発生した場合は回復パーティションのサイズが不足しているため、手動でパーティションサイズを拡張するようにとの案内があります。
一部のコンピューターには、この更新プログラムを完了させるのに十分な大きさの回復パーティションがない可能性があります。 このため、WinRE の更新が失敗する可能性があります。 その場合、次のエラー メッセージが表示されます:
Windows 回復環境サービスが失敗しました。
(CBS_E_INSUFFICIENT_DISK_SPACE)
具体的な手順はこちらのページにきちんと書いてあるのですが、少々ややこしいのでコマンドでのパーティション操作に慣れている方でないと戸惑うかと思います。
エラー解消手順
上記のパーティションサイズ拡張の手順をスクリプト化してコピペで実行できるようにしました。
管理者権限で PowerShell を開いて次のコマンドを順に実行してください。
全行選択してコピペでOKです。
重要なデータは必ずバックアップを取ったうえで実行してください。
実行した結果について一切責任は負いません。
$syspart = (Get-Partition -DriveLetter $env:SystemDrive[0])
$recpart = (Get-Partition).Where({$_.Type -eq 'Recovery' -or $_.MbrType -eq 0x27})[0]
$IsGpt = ($recpart | Get-Disk).PartitionStyle -eq 'GPT'
$dpscript = Join-Path $env:TEMP '\diskpart.txt'
$dparam = @("sel disk $($syspart.DiskNumber)")
$dparam += "sel part $($syspart.PartitionNumber)"
$dparam += "shrink desired=250 minimum=250"
$dparam += "sel part $($recpart.PartitionNumber)"
$dparam += "delete part override"
if($IsGpt){$dparam += "create part primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac"}
if($IsGpt){$dparam += "gpt attributes=0x8000000000000001"}
if(-not $IsGpt){$dparam += "create part primary id=27"}
$dparam += "format quick fs=ntfs"
if(-not $IsGpt){$dparam += "set id=27"}
$dparam | Out-File $dpscript -Force -Encoding ascii
if($stop = (-not $recpart -or $recpart.DriveLetter -or $syspart.DiskId -ne $recpart.DiskId -or $recpart.PartitionNumber - $syspart.PartitionNumber -ne 1)){throw 'This system is not supported.'}
reagentc /disable
if(-not $stop){diskpart /s $dpscript}
del $dpscript
reagentc /enable
KB5034441 を再度インストール
無事にコマンドが成功したら再度 Windows Update を実行してKB5034441が正常にインストールされることを確認してください。