プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Windows 10 回復パーティションの移動

Windows 11 での回復パーティションに関する操作の記事のまえに Windows 10 でいろいろと試したものになります。

仮想マシンのディスクサイズを増やしても、回復パーティションが邪魔をして、パーティションの拡張がうまくできない場合があります。

たとえば、こんな感じのパーティションがある場合などです。

ここで、回復パーティションをドライブの一番後ろに持っていき、Cドライブを拡張するという作業を行った際のメモ書きをまとめておきます。

あ、なお、今回対象としたのは、 Windows 10 で、仮想ディスクは MBR ディスクです( GPT だと若干コマンド等が変わるかもしれません)。

回復パーティションの削除と再作成

ネットを調べてみると、回復パーティションを移動させるというよりは、回復パーティションを削除してから再作成する、という手順になるようです。

今回は、下記の記事がわかりやすかったので、こちらを参考にして作業しました。

Windows10のCドライブを拡張するために回復パーティションを再作成する - 雑木林

まず、現時点の回復パーティション(回復環境)の状態を確認します。

Microsoft Windows [Version 10.0.19045.4412]
(c) Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:

    Windows RE の状態:         Enabled
    Windows RE の場所:         \\?\GLOBALROOT\device\harddisk0\partition2\Recovery\WindowsRE
    ブート構成データ (BCD) ID: 5a5e5c2b-976a-11eb-93ab-df467d4286c1
    回復イメージの場所:
    回復イメージ インデックス: 0
    カスタム イメージの場所:
    カスタム イメージ インデックス: 0

REAGENTC.EXE: 操作は成功しました。


C:\WINDOWS\system32>

一度無効化します。

C:\WINDOWS\system32>reagentc /disable
REAGENTC.EXE: 操作は成功しました。


C:\WINDOWS\system32>
C:\WINDOWS\system32>reagentc /info
Windows 回復環境 (Windows RE) およびシステム リセット構成
情報:

    Windows RE の状態:         Disabled
    Windows RE の場所:
    ブート構成データ (BCD) ID: 00000000-0000-0000-0000-000000000000
    回復イメージの場所:
    回復イメージ インデックス: 0
    カスタム イメージの場所:
    カスタム イメージ インデックス: 0

REAGENTC.EXE: 操作は成功しました。


C:\WINDOWS\system32>

回復環境を無効化すると、 C:\Windows\System32\Recovery 以下に Winre.wim というファイルが作成(というより、回復パーティションより退避)されます。システムファイルなので、エクスプローラで表示しても非表示になっている場合が多いかと思います。このファイルがないと、回復環境を再作成できないようなので気を付けてください。

回復パーティションを削除します。

C:\WINDOWS\system32>diskpart

Microsoft DiskPart バージョン 10.0.19041.3636

Copyright (C) Microsoft Corporation.
コンピューター: WIN7OFFICEWORK

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン            80 GB    20 GB

DISKPART> select disk 0

ディスク 0 が選択されました。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ               59 GB  1024 KB
  Partition 2    回復                 563 MB    59 GB

DISKPART> select partition 2

パーティション 2 が選択されました。

DISKPART> delete partition override

DiskPart は選択されたパーティションを正常に削除しました。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ               59 GB  1024 KB

DISKPART>

C ドライブがあるパーティションを拡張します。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ               59 GB  1024 KB

DISKPART> select partition 1

パーティション 1 が選択されました。

DISKPART> extend

DiskPart はボリュームを正常に拡張しました。

DISKPART> help

次に、拡張した C ドライブがあるパーティションを回復パーティションの分だけ縮小しておきます。縮小はパーティションの後ろ側から取られるので、こうすることで、回復パーティションの位置を移動させることになります。

縮小時のサイズは削除前のサイズと同じにしています。

DISKPART> shrink minimum=563

ボリュームは、次の方法で正常に縮小されました:  563 MB

DISKPART>

ディスクの後方に空き容量ができたので、ここに回復パーティションを再作成します。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
* Partition 1    プライマリ               79 GB  1024 KB

DISKPART> create partition primary

DiskPart は指定したパーティションの作成に成功しました。

DISKPART> format quick fs=ntfs

  100% 完了しました

DiskPart は、ボリュームのフォーマットを完了しました。

DISKPART> set id=27

DiskPart は、パーティション ID を設定しました。

DISKPART>

これで回復パーティションとしてフラグを立てたパーティションを作成することができました。

最後に、回復環境を再度有効にします。

C:\WINDOWS\system32>reagentc /enable
REAGENTC.EXE: 操作は成功しました。


C:\WINDOWS\system32>

確認

回復環境がちゃんと戻ったか確認してみます。

コンピュータの管理のディスクの管理では、回復パーティションに直接アクセスすることはできないので、 diskpart を使ってドライブレターを割り当てておきます。

C:\WINDOWS\system32>diskpart

Microsoft DiskPart バージョン 10.0.19041.3636

Copyright (C) Microsoft Corporation.
コンピューター: WIN7OFFICEWORK

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン            80 GB      0 B

DISKPART> select disk 0

ディスク 0 が選択されました。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ               79 GB  1024 KB
  Partition 2    回復                 563 MB    79 GB

DISKPART> select partition 2

パーティション 2 が選択されました。

DISKPART> assign letter=x

DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。

DISKPART> exit

DiskPart を終了しています...

ドライブレターが割り当てられたら、ファイルが存在するか確認します。ただし、隠しファイルでシステムファイルなので、 dir コマンドに属性を指定しています。

C:\WINDOWS\system32>x:

X:\>dir \Recovery\WindowsRE /ahs
 ドライブ X のボリューム ラベルがありません。
 ボリューム シリアル番号は D2A7-884F です

 X:\Recovery\WindowsRE のディレクトリ

2024/08/10  13:43    <DIR>          .
2024/08/10  13:43    <DIR>          ..
2019/12/07  18:08         3,170,304 boot.sdi
2024/08/10  13:43             1,117 ReAgent.xml
2021/04/07  15:18       484,170,098 Winre.wim
               3 個のファイル         487,341,519 バイト
               2 個のディレクトリ      85,884,928 バイトの空き領域

X:\>

ちゃんとありますね。

Windows で呼び出してみる

回復パーティションがちゃんと機能しているかは、 Windows から呼び出して確認します。

『設定』->『更新とセキュリティ』->『回復』->『PCの起動をカスタマイズする』で、『今すぐ再起動』を選択すると、

のような選択画面が表示されます。ここで『トラブルシューティング』を選択すると

となり、さらに『詳細オプション』を選択した際に

のように複数のオプションが表示されます。ここまでくればOKです。

もし、回復環境が使えない場合は、

のように選択肢が表示されません。

まとめ

たまーに、回復パーティションを触りたくなることもあるかと思いましたので、メモにまとめてみました。何かの参考になればと思います。