消えた「WinRE」問題の再発と回復パーティションの移動その知識、ホントに正しい? Windowsにまつわる都市伝説(154)

Windows 10の新規インストールを既定のオプションで進めてしまうと、Windows 8.1以前で採用されていた古いパーティション構成でセットアップされてしまうという問題があります。この問題と「Windows回復環境(WinRE)」のサイズの問題が重なると、少し厄介なことになります。さらに、問題が発生していることに気付かずに「BitLocker」を有効にしてしまうと……。

» 2020年02月19日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

空っぽの回復パーティションと消えたWinRE問題とは?

 本連載の第116回では、「Windows 10 バージョン1803」で発生した「Windows回復環境(WinRE)」が回復パーティションではなく「C:\Recovery\WindowsRE」にセットアップされてしまうという問題を解説しました。

 2019年11月にリリースされた「Windows 10 バージョン1909(x64)」でも再発したので注意喚起としてあらためて説明します。なお、使用したインストールメディア(インストールメディアのISOイメージは不定期にリフレッシュされたものがリリースされます)によっては、「Windows 10 バージョン1809」や「Windows Server 2019」の新規インストールでも発生することを確認しています。

 WinREが回復パーティションではなく、「C:\Recovery\WindowsRE」にセットアップされてしまう問題には、2つの問題が影響しています。

 一つは、Windows 10の新規インストールでパーティションの作成をセットアップに任せてしまうと、Windows 10の推奨パーティション構成ではなく、Windows 8.1以前の古いパーティション構成でセットアップされてしまうという問題です。

 Windows 10の推奨パーティション構成では、回復パーティションはディスクの最後に配置され、回復パーティションがWinREやOEMのツールを格納するために使用されます。しかし、古いパーティション構成では、BIOSシステムの場合は第1パーティションのシステムパーティションにブート構成(BOOT\BCD)とともにWinREが格納され、UEFIシステムの場合は第1パーティションに回復パーティションが準備されます。

 もう一つの問題は、WinREのイメージである「WinRE.wim」のサイズの肥大化です。Windows 10のセットアップが作成したBIOSシステムのシステムパーティション/UEFIシステムの回復パーティションに、WinREを格納するために必要な十分な空き領域がない場合、WinREの配置に失敗し、「C:\Recovery\WindowsRE」にWinREをセットアップしてしまうのです。WinREの現在の状態は、「reagentc /info」コマンドで確認することができます。

 上記ドキュメントによると、回復パーティションにはWinREのサイズに加えて、最小52MB〜推奨250MBの空き領域と、NTFSが予約する5M〜15MB(750MBより大きいパーティションではそれ以上)を加えた領域が必要と説明されています(以前は320MBと記載されていましたが、より詳細な情報に更新されました)。BIOSシステムのシステムパーティションを共用する場合、さらにブート構成(BOOT\BCD)のための領域も必要になります。

 64bit(x64)版Windows 10 バージョン1909の場合(x86は未確認)、WinRE関連のファイルサイズの合計は約464MBでした。これに対し、Windows 10のセットアップが自動作成したUEFIベースの回復パーティションは529MB、BIOSシステムのシステムパーティションは579MB(BCD関連で35MBを使用)、いずれも空き領域が微妙に足りなかったようで、「C:\Recovery\WindowsRE」にWinREがセットアップされてしまいました(画面1画面2)。

画面1 画面1 Windows 10 バージョン1909の新規インストールで自動構成されたUEFIシステムのパーティション構成と「C:\Recovery\WindowsRE」にセットアップされたWinRE。つまり、回復パーティション(partition1)は空っぽ
画面2 画面2 Windows 10 バージョン1909の新規インストールで自動構成されたBIOSシステムのパーティション構成と「C:\Recovery\WindowsRE」にセットアップされたWinRE

 OSとWinREは別のパーティションにあるべきで、WinREが「C:\Recovery\WindowsRE」に配置されているのは不適切な状態です。例えば、トラブルシューティング(システムのリストア)や「BitLockerドライブ暗号化」による暗号化に影響します。

 この不適切な状態は、次回の機能更新プログラムによるアップグレード時に、ディスクの最後に新たに回復パーティションが作成され(「C:\」のパーティションを縮小して)、正常化されますが、UEFIシステムの場合は未使用のパーティション(空っぽの回復パーティション)がずっと残ってしまいます。

 これを避けるには、新規インストール時に手動でパーティションを切ってセットアップするしかありません。その方法については、以下の連載記事で紹介しています。

「C:\Recovery\WindowsRE」を新しい回復パーティションに移動(UEFIの場合)

 新規インストールせず、すぐに不適切な状態を解消したいという場合は、新たに回復パーティションを作成して、「C:\Recovery\WindowsRE」のWinREを移動します。BIOSシステムでの手順については、本連載の第116回で説明しました。

 UEFIシステムも同じように行えばよいと思っていたのですが、少し注意が必要だったので、今回はUEFIシステムの場合で説明します。以下の例では、Cドライブのパーティションを縮小して、OEM向けの推奨サイズである990MBの回復パーティション(ラベル名は「WINRE」)を作成します。

 コマンドプロンプト(またはWindows PowerShell)を管理者として開き、次のように実行します。

diskpart
DISKPART> list disk
DISKPART> select disk OSディスクのディスク番号
DISKPART> list partition
DISKPART> select partition Cドライブのパーティション番号
DISKPART> shrink minimum=990
DISKPART> create partition primary
DISKPART> format quick fs=ntfs label="WINRE"
DISKPART> assign letter=R
DISKPART>

 「DISKPART」コマンドのプロンプトをこの状態で維持したまま、新たにコマンドプロンプトを管理者として開き、以下のコマンドを実行します。この例では「C:\Recovery\WindowsRE」にWinREがセットアップされていることを前提にします。別の場所にセットアップされている場合は、そのパーティションにドライブ文字を割り当てて、コピー元として使用してください。

reagentc /info	(現在、WinREが有効なことと、配置先のパーティションを確認)
mkdir R:\Recovery\WinRE
copy /h C:\Recovery\WindowsRE\winre.wim R:\Recover\WindowsRE
reagentc /disable
reagentc /setreimage /path R:\Recovery\WindowsRE

 ここまで来たらDISKPARTコマンドのプロンプトに戻り、以下のように実行してドライブ文字の割り当てを解除し、その後、回復パーティションのための属性を設定します。また、未使用の回復パーティション(第1パーティション)を削除します。最後に、「reagentc /enable」コマンドを実行して、新しい回復パーティションのWinREを有効化します(画面3画面4)。

DISKPART> remove
DISKPART> set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
DISKPART> gpt attributes=0x8000000000000001
DISKPART> select partition 1
DISKPART> delete partition override
DISKPART> exit
reagentc /enable
画面3 画面3 新しいパーティションを作成し、ドライブ文字(「R」など)を割り当て、「C:\Recovery\WindowsRE\winre.wim」を「R:\Recovery\WindowsRE」にコピーし、WinREの場所を登録する
画面4 画面4 ドライブ文字を削除して、回復パーティションの属性を設定してから、新しい回復パーティションのWinREを有効化する

 「reagentc /disable」コマンドでWinREを無効化すると「C:\Recovery\WindowsRE\winre.wim」にアクセスできなくなってしまうので、コピー後にWinREを無効化してください。また、ドライブ文字の割り当て解除と回復パーティションの属性設定の順番を間違えると、ドライブ文字を削除した状態でWinREが有効化できなかったり(Disabledのまま)、削除したはずのドライブ文字が再起動後に再割り当てされたりするので注意してください。

WinRE問題発生中を知らずにOSドライブでBitLockerを有効化すると……

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。