かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  vol.12 ドライブ文字がないとWinREが無効になる謎現象を解決

 

 

vol.12 ドライブ文字がないとWinREが無効になる謎現象を解決

2024年05月23日配信
執筆者:山内 和朗

 このブログではこれまで回復パーティションとWinREのあれこれについて取り上げてきましたが、その検証作業の中では、さまざまなバージョン、ディスク構成の、多数のWindowsマシン(Hyper-VやAzure上の仮想マシンを含む)のパーティション操作を行いました。今回はその中で遭遇した、珍しいトラブル事例を紹介します(私としては数年前に経験済みの事例)。回復パーティションとWinRE関連の話はvol.6で一区切りしたつもりでしたが、その後も無関係ではない話が続きました。今回でこの話題は本当に一区切りにします。

 

(ドライブ文字を)削除しても蘇る謎のR:ドライブ

 

 Windows 11を実行するあるデバイスでR:ドライブが存在することを見つけました。ドライブ文字「R」は、私が回復パーティションの確認や作業を行う際、分かりやすいように(RecoveryのR)、一時的に割り当てるものです。作業が終わったら割り当てを削除するのですが、うっかり忘れてしまったのでしょうか。

 回復パーティションに割り当てられたドライブ文字「R」は、管理者として開いたコマンドプロンプト(またはWindows PowerShell、PowerShell)でDISKPARTコマンドを次のように実行することで削除することができます(画面1)。この例は、ドライブ文字「R」が割り当てられた回復パーティションは、ディスク0、パーティション4にある場合です。

kC:\> DISKPART
DISKPART> LIST DISK
DISKPART> SELECT DISK 0
DISKPART> LIST PARTITION
DISKPART> SELECT PARTITION 4
DISKPART> REMOVE Letter=R
DISKPART> EXIT

 

画面1

画面1 回復パーティションの前回の作業時にドライブ文字の割り当てを削除するのを忘れた(?)と思われるため、DISKPARTコマンドで速攻削除(※この画面は問題を再現させた仮想マシンです)

 後日、そのデバイスにR:ドライブが復活しているのを目にしました。どうやら、ドライブ文字の割り当てを削除しても、OSが次に起動する際に、再び割り当てられるようです。これは一体、どういうことなのでしょうか?

画面2
画面2 デバイスを再起動すると、割り当てを削除したはずのR:ドライブが復活してくる

 R:ドライブが割り当てられた状態で「reagentc /info」を管理者として実行してみると、WinREは有効になっており、ディスク0のパーティション4の場所を示しています。「reagentc /disable」によるWinREの無効化、「reagentc /enable」によるWinREの有効化、いずれも正常に機能します。

 しかし、ドライブ文字「R」の割り当てを削除して、「reagentc /disable」、「reagentc /enable」を実行すると、いずれも“操作は成功しました。”と表示されるものの、「reagentc /info」を実行すると、WinREが無効な状態になってしまいました(画面3)。そして、OSを再起動すると、R:ドライブが復活し、WinREも有効な状態に戻るのです(前出の画面2)。

画面3
画面3 R:ドライブの割り当てを削除すると、WinREを有効にしても、無効の状態のまま。OSを再起動すると画面2の状態に戻る

 

この謎現象の解決策は至極単純、ただやり直すだけ

 

 実は、この謎現象と全く同じトラブルに、以前(数年前)に一度遭遇したことがあります。想像の範囲を超えるものではありませんが、回復パーティションにドライブ文字が割り当てられた状態でWinREを有効化すると、その後ドライブ文字の割り当てを削除しても、同じ状態になります。今回の画面は、そうやって再現させた環境のものです。

 以前に経験済みのトラブルであるため、解決策も知っています。回復パーティションを再作成すればよいのです。正しい手順で行えば問題の状況にはならないはずです。そもそもその手順にはドライブ文字の割り当てや削除は含まれませんし、現在の割り当ては回復パーティションを削除する際に消失します。

 その手順はvol.3の回復パーティションのサイズ拡張手順によく似ていますが、今回は拡張のための操作(Windowsパーティションの縮小)は不要です。回復パーティションの再作成は、コマンドプロンプトを管理者として開き、次のコマンドラインを順番に実行するだけで完了します(画面4、画面5)。ポイントは、DISKPARTコマンドを実行する前にWinREを無効化してC:ドライブに退避し、回復パーティションを再作成(削除、作成、設定)してから、WinREを有効にする点です。以下の例は、回復パーティションがディスク0、パーティション4にある場合の例です。実行する際には、お使いの環境に合わせてください。そうでないと、大変なことになりますよ。


C:\> reagentc /disable
C:\> DISKPART
DISKPART> LIST DISK
DISKPART> SELECT DISK 0
DISKPART> LIST PARTITION
DISKPART> SELECT PARTITION 4
DISKPART> DELETE PARTITION OVERRIDE
DISKPART> CREATE PARTITION PRIMARY
DISKPART> FORMAT QUICK FS=NTFS LABEL="WinRE"
DISKPART> set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
DISKPART> gpt attributes=0x8000000000000001
DISKPART> EXIT
C:\> reagentc /enable

 

画面4
画面4 WinREを無効にしてから、DISKPARTコマンドを実行する

 

画面5
画面5 DISKPARTコマンドで回復パーティションを再作成したら、WinREを有効にする

 

 この珍現象(トラブル)は、回復パーティションにドライブ文字を割り当てないでWinREをセットアップしている限り遭遇することはないと思いますが、回復パーティションのファイルを直接操作(ファイルのコピー、WinREイメージのサイズ確認など)するために一時的にドライブ文字を割り当てて作業していると、再現する可能性があります。また、回復パーティションの削除する際に回復パーティションの中身は失われます。WinRE以外の何かを格納している場合は、前もってバックアップコピーを取り、再作成後にコピーし戻してください。そういった作業のためには、回復パーティションにドライブ文字を一時的に割り当てる必要があるので、珍現象の再現を繰り返すことにないようにご注意ください。

 

blog_subscribe

blog_comment

最新記事