WindowsUpdate エラーを回復パーティション拡張で回避(KB5034441)(0x80070643)
概要・いきさつ
Windows Update にて
2024-01 x64 ベース システム用 Windows 10 Version 22H2 のセキュリティ更新プログラム (KB5034441)
がうまく通らず、エラーが発生する ( = 0x80070643 )
原因がどうやら「ドライブに通常含まれている回復用パーティション(WinREと呼ばれているらしい)の容量が足りない」との事
フォーラムへの書き込み によると「1 ~ 1.5GB 程度あると好ましい」的な雰囲気だった。
自環境で回復用パーティションを確認したところ 564MB だったので、ここからさらに500MB程増やした時の覚書となります
※ やるなら自己責任で (常套句)
やること(ざっくり)
- Cドライブ容量を削って、空き領域を作成
- 同ドライブ内にある回復パーティションを一度削除
- 1と2を併せた領域に新パーティションを作成
「ディスクの管理」機能 ( タスクバーのWindowsボタン右クリック → ディスクの管理 )を使うと
下記画像と照らし合わせてなんとなくイメージができるかも?
処理の流れ
※ 「回復パーティション」「WinRE」といった表記ブレがありますが、どちらも同じような意味で捉えてください
-
コマンドプロンプトを 管理者権限 で実行
-
reagentc /info
で確認C:\Windows\system32>reagentc /info Windows 回復環境 (Windows RE) およびシステム リセット構成 情報: Windows RE の状態: Enabled Windows RE の場所: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE ブート構成データ (BCD) ID: 1c8bf20d-c23c-11ee-8541-b188004d79bc 回復イメージの場所: 回復イメージ インデックス: 0 カスタム イメージの場所: カスタム イメージ インデックス: 0 REAGENTC.EXE: 操作は成功しました。
-
reagentc /disable
で WinRE を無効にしておく -
diskpart
で diskpart を起動
※ ここからは (exit
等のコマンドで抜けるまでは) diskpart に対する操作コマンドとなる -
list disk
でディスクをリストアップ
筆者環境の場合、メインCドライブとして使っているSSD内に 回復パーティションがあるので
操作対象 は 「ディスク 0」 となる ( ※ 環境に応じて番号=操作対象 は変えてください )DISKPART> list disk ディスク 状態 サイズ 空き ダイナ GPT ### ミック ------------ ------------- ------- ------- --- --- ディスク 0 オンライン 465 GB 0 B * ディスク 1 オンライン 476 GB 1024 KB * ディスク 2 オンライン 29 GB 28 MB
-
sel disk (番号)
で操作するディスクを選択
( 筆者環境ならsel disk 0
)DISKPART> sel disk 0 ディスク 0 が選択されました。
-
選択したディスク内にあるパーティションを 更に
list part
でリストアップPartition ### Type Size Offset ------------- ------------------ ------- ------- Partition 1 システム 100 MB 1024 KB Partition 2 予約 16 MB 101 MB Partition 3 プライマリ 465 GB 117 MB Partition 4 回復 564 MB 465 GB
自環境だと「C ドライブとして使っている領域」 が Partition 3 表記なので、
パーティション 3を選択したうえで「君、ちょっと空き容量分けてくれない?」と後々操作を行う※ すでにCドライブの空き容量がカツカツな状態だと、多分ろくでもないことになるかもしれないので注意
エラーで処理はじいてくれるかもしれないし、なんかおかしくなっちゃうかもしれない。 試したことがないので知らんけど。 -
sel partition (番号)
で操作する Cドライブ パーティションを選択
前述の通り、筆者環境ではsel partition 3
としたDISKPART> sel partition 3 パーティション 3 が選択されました。
-
shrink desired=500 minimum=500
を実行
選択中の操作対象 (つまり ディスク1 の中にある パーティション 3) に対し、
「最大500MB ~ 最小 500MB の条件にて、可能な部分を削って 空き容量を作ってくれ」と処理させる
Microsoft Learn - shrink -
sel partition (番号)
で操作する WinRE パーティションを選択
筆者環境だと、対象は前述リスト「partition 4 回復」の部分なのでsel partition 4
となったDISKPART> sel partition 4 パーティション 4 が選択されました。
-
delete partiton override
で WinRE パーティション 削除
今選んだ回復(WinRE)パーティションに対し、このコマンドで削除操作を行う。
( 💀 無関係なディスクやパーティション選んだ状態でこれをやってしまうとデータ吹っ飛んだりする 💥 )DISKPART> delete partition override DiskPart は選択されたパーティションを正常に削除しました
-
回復パーティション割り当て
ディスクパーティションスタイルと呼ばれる形式が環境によって異なるらしい。
GPT か MBR のどちらかがあり、それぞれに応じたコマンドが必要 との事- 確認方法
diskpart 上でlist disk
を実行
リストの 「GPT」列に*
マークがあれば → GPT / 無ければ → MBR
下記スクショなら、ディスク 0 および 1 が GPT で ディスク 2 が MBR
- GPT の場合
( 筆者環境はこっちだった )
まずcreate partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
を実行し、
未割当てとなった領域にパーティションを再構築する。
なお、 次にgpt attributes =0x8000000000000001
を実行し、同パーティションに属性を与える。
Microsoft Learn - gpt - MBR の場合
create partition primary id=27
のコマンドを実行するらしい
- 確認方法
-
GPT環境でのパーティション作成
create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
を実行DISKPART> create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac DiskPart は指定したパーティションの作成に成功しました。
そのままの流れで、次に
gpt attributes =0x8000000000000001
を実行DISKPART> gpt attributes =0x8000000000000001 選択された GPT パーティションに DiskPart で属性を割り当てました。
-
WinRE パーティションの作成を確認
diskpart上でlist vol
を実行
筆者環境では以下のようになりましたDISKPART> list vol Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ---- ---------- ------- --------- -------- Volume 0 C NTFS Partition 464 GB 正常 ブート Volume 1 FAT32 Partition 100 MB 正常 システム Volume 3 D ボリューム NTFS Partition 476 GB 正常 Volume 4 E FAT32 リムーバブル 29 GB 正常 * Volume 5 RAW Partition 1065 MB 正常 非表示
( ↑ この時点で「ディスクの管理」機能でも 約 1GBの回復パーティション表記がなされていることを確認しました )
-
exit
で Diskpart を抜ける(終了状態にする) -
WinRE を再び有効にする
exit
で抜けた後、最後に再びコマンドプロンプト上から
reagentc /enable
を実行し、WinRE を有効 にしてフィニッシュです 😋C:\Windows\system32>reagentc /enable REAGENTC.EXE: 操作は成功しました。
余談など
reagentc /info
を実行すると、WinRE の構成情報が出てくる
C:\Windows\system32>reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Enabled
Windows RE の場所: \\?\GLOBALROOT\device\harddisk0\partition3\Recovery\WindowsRE
ブート構成データ (BCD) ID: ec0fa2fe-c88f-11ee-826f-7085c280ddfb
回復イメージの場所:
回復イメージ インデックス: 0
カスタム イメージの場所:
カスタム イメージ インデックス: 0
REAGENTC.EXE: 操作は成功しました。
ちなみに 回復パーティションを割り当てた直後 ( reagentc /enable
実行前 ) の状態で
reagentc /info
を実行したときは、以下の表示となっていた
C:\Windows\system32>reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Disabled
Windows RE の場所:
ブート構成データ (BCD) ID: 00000000-0000-0000-0000-000000000000
回復イメージの場所:
回復イメージ インデックス: 0
カスタム イメージの場所:
カスタム イメージ インデックス: 0
REAGENTC.EXE: 操作は成功しました。
というわけで
再び Windows Update にて
2024-01 x64 ベース システム用 Windows 10 Version 22H2 のセキュリティ更新プログラム (KB5034441)
をインストールさせようとすると、うまく通りました😎 やったぜ