1月のWindows UpdateからKB5034441のエラーが出てアップデートできない問題を何とかしようとしたらうまく行ったので書いとこう
根本的な原因はOS側ディスクの回復パーティションが容量不足のため回復イメージ(winre.wim)がインストールできないからなのだが・・・
*基本的には容量を拡張できれば良いのだが作業にcmdなどの操作が必要なので作業には細心の注意が必要!
①管理者権限でcmdを起動しWindows REを無効化する
reagentc /info
Windows REの状態を確認しEnabledであれば無効化する
reagentc /disabled で無効化できる
まずはWindows REの状態を確認
C:\Windows\system32>reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:
Windows RE の状態: Disabled*自分の場合はなぜか最初からDisabledになっていたのでreagentc /disabledのコマンドは不要
②DiskpartでOSパーティションの容量を縮小
回復パーティションを拡張するには他のパーティションを縮小する必要がある
通常は最も容量が多いOSの入ったパーティションを縮小する
list disk で接続されているディスクを確認し
select disk 8 でOSのディスクの番号を選択(番号は各々の環境にあった番号を指定)
list partition で選択したディスクのパーティションを確認
select partition 3 でプライマリつまりOSの入ったパーティションを選択
shrink querymax で念の為縮小できるサイズの上限を確認する
shrink desired=476 minimum=476 で476MB縮小する
縮小する容量は拡張後の回復パーティションの容量から現在の容量を引いた数値
*例: 1024MBに拡張したいので 1024-548=476となるので476を指定
ちなみにアップデートでwinre.wimの容量が900MB以上になる環境も確認されているので
拡張後の容量は念の為1GB以上に指定しておいた
*以下実行例をHighlighting Code Blockで表示
C:\Windows\system32>diskpart
DISKPART> list disk
ディスク 状態 サイズ 空き ダイナミック GPT
------------ ------------- ------- ------- --- ---
...
ディスク 8 オンライン 931 GB 0 B *
DISKPART> select disk 8
ディスク 8 が選択されました。
DISKPART> list partition
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 100 MB 1024 KB
Partition 2 予約 16 MB 101 MB
Partition 3 プライマリ 930 GB 117 MB
Partition 4 回復 548 MB 930 GB
DISKPART> select partition 3
パーティション 3 が選択されました。
DISKPART> shrink querymax
再利用できる最大のバイト数は次のとおりです。 36 GB (37799 MB)
DISKPART> shrink desired=476 minimum=476
③回復パーティションを新規に作成する
既存の回復パーティションは念の為削除したうえで新規に作成し直す
select partition 4 で回復パーティションを選択
delete partition override でパーティションを削除
*間違ったパーティションを削除すると復元できないなので細心の注意を払うこと
次にパーティションを作成し直すのだが現在のディスクがGPTかMBRなのかを確認する
list diskでGPTの項目に * が付いていればGPT形式のディスクである
以下のコマンドでGPT形式のパーティションを作成し回復パーティション属性を付加する
create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes =0x8000000000000001
(MBR形式の場合は create partition primary id=27 を実行する)
作成したパーティションをフォーマットする
format quick fs=ntfs label=”Windows RE tools”
*他のサイトなどでフォーマットは任意とあるが自分の環境ではフォーマットしないとうまくいかなかったので必須だと思う
DISKPART> select partition 4
パーティション 4 が選択されました。
DISKPART> delete partition override
DiskPart は選択されたパーティションを正常に削除しました。
DISKPART> create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
DiskPart は指定したパーティションの作成に成功しました。
DISKPART> gpt attributes =0x8000000000000001
選択された GPT パーティションに DiskPart で属性を割り当てました。
DISKPART> format quick fs=ntfs label="Windows RE tools"
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。
フォーマット完了後きちんと容量が拡張された回復パーティションが作成されていれば成功
サイズが1024MBになっているのが確認できる
DISKPART> list part
Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 100 MB 1024 KB
Partition 2 予約 16 MB 101 MB
Partition 3 プライマリ 930 GB 117 MB
Partition 4 回復 1024 MB 930 GB
DISKPART> exit
DiskPart を終了しています...
④Windows REを有効化する
reagentc /enable でWindows REを再度有効化する
*当初自分の環境では以下のようなエラーが出て有効化できなかった
C:\Windows\system32>reagentc /enable
REAGENTC.EXE: Windows RE は、BitLocker ドライブの暗号化が有効になっているボリュームでは有効にできません。
表記通りに取るとBitLockerを無効化すれば良さそうだが実はエラー内容が間違っている!
実際は回復パーティションの容量不足かパーティションそのものが見つからないので有効化できないのだ
表記に騙されてBitLockerを無効化してはいけない!(無駄にディスクを傷める)
今回は容量拡張を行ったので可能性としてはパーティションがないパターン
念の為回復パーティションの確認を行う
detail partition を使う
DISKPART> select partition 4
パーティション 4 が選択されました。
DISKPART> detail partition
パーティション 4
種類 : de94bba4-06d1-4d40-a16a-bfd50179d6ac
隠し属性 : はい
必要 : はい
属性 : 0X8000000000000001
オフセット (バイト): 999130398720
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
* Volume 9 RAW Partition 1024 MB 正常 非表示
注目すべきなのが Fs の項目で RAW の表記つまり未フォーマットになっている
これは回復パーティションを作成時にフォーマットをしなかったためで結果として
今回Windows REが正常に有効化できない原因となった
必ず format quick fs=ntfs label=”Windows RE tools” でフォーマットすること!
DISKPART> format quick fs=ntfs label="Windows RE tools"
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。
DISKPART> detail partition
パーティション 4
...
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
* Volume 9 Windows RE NTFS Partition 1024 MB 正常 非表示
DISKPART> exit
DiskPart を終了しています...
C:\Windows\system32>reagentc /enable
REAGENTC.EXE: 操作は成功しました。
フォーマット後は正常に reagentc /enable でWindows REが有効化できる
⑤Windows UpdateでKB5034441を適用する
これまでの一連の操作が成功していればWindows UpdateでKB5034441のインストールが成功する
*他の方法でWindows Powershellスクリプトを用いた方法があるが事前にアップデートファイル
windows10.0-kb5034232-x64_ff4651e9e031bad04f7fa645dc3dee1fe1435f38.cab
を入手する必要がある
(KB5034441経由でWindows REにパッチを当てるのがKB5034232と思われる)
自分は前述のreagentc /enableエラーと同様にスクリプトにもエラーが出たので
回復パーティションのフォーマットを実行後試しにWindows Updateを実行したら成功した
以上で操作は終わりだが1月にこの問題が発覚してから約3ヶ月もMSが問題を放置しているのはいかがなものか
パーティション操作という失敗すると致命傷となる可能性もあって及び腰になっているのも理解できるのだが
そもそもBitLocker脆弱性の問題はこれまでにも何回かあったのでBitLockerの仕組みそのものに大きな問題を抱えている可能性も拭えない
BitLocker以外で手軽に使える暗号化技術があれば良いのだが・・・






コメントを残す