Windowsのインプレースアップグレードを繰り返してきたPCでは、いつの間にか何も使用されていない無駄なパーティションが増えていることがあります。その理由は、回復パーティションの既定の配置変更やWinREイメージのサイズ増加が関係しています。2022年末に明らかになったローカルのWinREの脆弱性対策を機に、乱れてしまったパーティション構成を整理しました。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載第251回では、仮想マシンのゲストOSのバージョンアップグレードの結果、無駄に増えてしまった回復パーティションを削除して、容量可変タイプの仮想ハードディスク(VHDX)に適したパーティションの最後に回復パーティションを持たないパーティション構成にする方法を説明しました。仮想マシンの場合、ISOメディアから「Windows回復環境(Windows Recovery Environment、WinRE)」を簡単に起動できるので、ゲストOSのローカルにあえて回復パーティションやWinREをセットアップすることは省略しました。
容量固定の物理HDD(またはSSD)の物理環境では、アップグレードの繰り返しで回復パーティションが増えてしまったとしても、十分な空き領域が残っていれば放置してもよいと考えていました。ところが先日、「Windows 10(x64)バージョン22H2」を搭載したノートPCのパーティション構成を確認したところ、ディスクの末尾に回復パーティションが3つ並んでいるデバイスを確認しました(画面1)。サポート終了(EoS)まで後数年のWindows 10デバイスなので、これ以上増えることはないと思いますが、目にしてしまった以上、どうにかスッキリさせたいと思ってしまいました。
というのは、2022年11月に、ローカルにインストールされているWinREに「CVE-2022-41099」のセキュリティ脆弱(ぜいじゃく)性問題があることが公表され、この脆弱性に対策するためにはローカルにインストールされているWinRE(winre.wim)に対して更新プログラムをオフラインで適用するという面倒な手順を実施する必要があったからです。
2023年1月の更新プログラムで追加の手順を実施することで修正されるかのような記事を見掛けましたが、修正は2022年11月の更新プログラムに含まれます。
なお、この脆弱性を悪用するためには物理デバイスに直接アクセスできる必要があり、その可能性は低いため、緊急に対策しなければならないというものでもありません。また、そもそも「BitLockerドライブ暗号化」を利用していないデバイスでは、この脆弱性を悪用してセキュリティをバイパスされることはありません。個人や会社のデバイスで対策する必要があるかどうかについては、以下の公開情報を確認して判断してください。
Microsoftは2023年3月に、WinREの脆弱性対策のための面倒な手順を簡単に実装できるPowerShellスクリプトを公開しました。しかし、このスクリプトは回復パーティションの空き領域が不足していると失敗する上(画面2)、意図せず、ローカルのWinREが無効化されたり、削除されたりすることもあるようなのです。
筆者の環境では、「Windows 11 バージョン22H2」のWinREイメージは、元の約575MBからパッチ適用後に約775MB、Windows 10(x64)バージョン22H2は元の約471MBからパッチ適用後に802MBにサイズが増加しました。
回復パーティションには「winre.wimのサイズ」+「少なくとも100MB(推奨250MB)の空き領域」+「5〜15MB(NTFSファイルシステム自体が予約する領域)」が必要なので、パッチ済みのWinREを格納するためには約1GBのサイズが必要になります。「Windowsセットアップ」で自動作成された回復パーティションのサイズでは、多くの場合、現在の回復パーティションのままパッチを適用するには容量不足になるでしょう。
Windowsセットアップは、同じWindowsのバージョンでWinREイメージが更新されることを想定していないと思われ、オリジナルのWinREイメージのサイズに基づいて回復パーティションのサイズを調整するからです。Microsoftが対策を推奨しているからといって、影響を受けないかもしれないのに(BitLockerを使用していないデバイス)、何も考えずに安易にスクリプトを実行してしまうと、WinREが削除されるなど、思わぬトラブルに巻き込まれてしまうかもしれません。
今回紹介する回復パーティションの再作成手順は、無駄に増加してしまった回復パーティションを整理するだけでなく、回復パーティションの容量不足への対応や、意図せずWinREが無効化されてしまった場合のWinRE再セットアップにも利用できます。
回復パーティションが複数ある場合、ローカルにインストールされている現在のWinREの場所を確認するには、コマンドプロンプトやPowerShellウィンドウを管理者として開き、「reagentc /info」コマンドを実行します。現在利用されていない回復パーティションについては、念のためドライブ文字を割り当てて内容を確認してください。OEMの回復ツールや、OEMが用意したイメージを格納しているパーティションである場合もあります(画面3)。
Copyright © ITmedia, Inc. All Rights Reserved.