Windows 10の新規インストールを既定のオプションで進めてしまうと、Windows 8.1以前で採用されていた古いパーティション構成でセットアップされてしまうという問題があります。この問題と「Windows回復環境(WinRE)」のサイズの問題が重なると、少し厄介なことになります。さらに、問題が発生していることに気付かずに「BitLocker」を有効にしてしまうと……。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載の第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)。
OSとWinREは別のパーティションにあるべきで、WinREが「C:\Recovery\WindowsRE」に配置されているのは不適切な状態です。例えば、トラブルシューティング(システムのリストア)や「BitLockerドライブ暗号化」による暗号化に影響します。
この不適切な状態は、次回の機能更新プログラムによるアップグレード時に、ディスクの最後に新たに回復パーティションが作成され(「C:\」のパーティションを縮小して)、正常化されますが、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
「reagentc /disable」コマンドでWinREを無効化すると「C:\Recovery\WindowsRE\winre.wim」にアクセスできなくなってしまうので、コピー後にWinREを無効化してください。また、ドライブ文字の割り当て解除と回復パーティションの属性設定の順番を間違えると、ドライブ文字を削除した状態でWinREが有効化できなかったり(Disabledのまま)、削除したはずのドライブ文字が再起動後に再割り当てされたりするので注意してください。
Copyright © ITmedia, Inc. All Rights Reserved.