Windows 10の回復パーティションのサイズ拡張方法

# 概要
- Windows 10の更新プログラムKB5034441が0x80070643エラーでインストールできない問題の解決方法の説明を兼ねて作成した記事です。
- 既にMicrosoft公式から出ている[こちらの記事](https://support.microsoft.com/ja-jp/topic/kb5028997-winre-更新プログラムをインストールするためにパーティションのサイズを手動で変更する手順-400faa27-9343-461c-ada9-24c8229763bf)と内容はほぼ同じです。
- ネット上を検索すると説明がわかりづらい記事や、パーティションを操作する危険性や面倒臭さを主張する意見が多いですが、<font color=#FF９９９９>（現状のパーティション設定が複雑でなければ）</font>実際はすぐにできるので補足説明を入れつつ簡潔に手順を記載しました。

# やりたいこと
Before
![Qiita_before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17245/99532484-64b5-b299-133e-4607e35c7491.png)
↓
After
![Qiita_after.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17245/1116dafd-4dea-3c99-3f2a-45e37e74b37f.png)


# 手順
### 1\. 管理者としてコマンドプロンプト（cmd.exe）を起動する
### 2\. Windows回復環境（WinRE）を無効化する

　2-1. WinREの状態を確認

-
    ```vb
    reagentc /info
    
    ' Windows 回復環境 (Windows RE) およびシステム リセット構成
    ' 情報:
    ' 　Windows RE の状態:        Enabled
    ' 　Windows RE の場所:        \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE
    ' 　ブート構成データ (BCD) ID: 00000000-0000-0000-0000-000000000000
    ' 　回復イメージの場所:
    ' 　回復イメージ インデックス: 0
    ' 　カスタム イメージの場所:
    ' 　カスタム イメージ インデックス: 0
    ```

　2-2. WinREを無効化

-
    ```vb
    reagentc /disable

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

### 3\. パーティション管理ツール（DiskPart）を起動する

```vb
diskpart
```

### 4\. 増やしたい回復パーティションのサイズ分だけOSパーティションのサイズを縮小する

　4-1. ディスクの認識状況を確認

-
    ```vb:DiskPart
    list disk
    
    ' ディスク    状態       サイズ    空き     ダイナミック  GPT
    ' ---------  ---------  -------  -------  -----------  ---
    ' ディスク 0  オンライン   931 GB  1024 KB               *
    ' ディスク 1  オンライン  1863 GB  1024 KB               *
    ```

  :::note info
  ここで、OSがインストールされているディスクのパーティション形式が次のどちらになっているか確認しておくこと（後述の6-1で、同一形式のパーティションを作成することになるため）。
  ・GPTの列に\*が表示されている場合：GUID Partition Table (GPT)
  ・GPTの列に\*が表示されていない場合：Master Boot Record (MBR)
  :::


　4-2. OSがインストールされているディスク番号を選択（例：ディスク 0の場合）

-
    ```vb:DiskPart
    select disk 0

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

　4-3. ディスク内のパーティションの認識状況を確認

-
    ```vb:DiskPart
    list partition
    
    '   Partition ###  Type               Size     Offset
    '   -------------  -----------------  -------  -------
    '   Partition 1    システム　           100 MB  1024 KB
    '   Partition 2    予約　　　            16 MB   101 MB
    '   Partition 3    プライマリ           930 GB   117 MB
    '   Partition 4    回復　　　           572 MB   930 GB
    ```

　4-4. OSがインストールされているパーティション番号を選択（例：Partition 3の場合）

-
    ```vb:DiskPart
    select partition 3

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

　4-5. 選択中のパーティションのサイズを最大でどれだけ縮小できるか念のため確認

-
    ```vb:DiskPart
    shrink querymax
    
    ' 再利用できる最大のバイト数は次のとおりです。   84 GB (86599 MB)
    ```

　4-6. 選択中のパーティションのサイズを縮小

-
    ```vb:DiskPart
    shrink desired=452 minimum=452
    
    ' ボリュームは、次の方法で正常に縮小されました:  452 MB
    ```
  :::note info
  例えば、既存の回復パーティションのサイズが572MBで、最終的に1024MBの回復パーティションを作りたい場合、452MBだけ縮小すれば良い。（1024-572=452）
  :::

### 5\. 既存の回復パーティションを一旦削除する

　5-1. ディスク内のパーティションの状況を確認

-
    ```vb:DiskPart
    list partition

    '   Partition ###  Type              Size     Offset
    '   -------------  ----------------  -------  -------
    '   Partition 1    システム　          100 MB  1024 KB
    '   Partition 2    予約　　　           16 MB   101 MB
    ' * Partition 3    プライマリ          930 GB   117 MB
    '   Partition 4    回復　　　          572 MB   930 GB
    ```


　5-2. 既存の回復パーティション番号を選択（例：Partition 4の場合）

-
    ```vb:DiskPart
    select partition 4

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

  :::note warn
  次の操作でパーティションが削除されるため、選択ミスに注意すること。
  :::

　5-3. 選択中のパーティションの削除

-
    ```vb:DiskPart
    delete partition override
    
    ' DiskPart は選択されたパーティションを正常に削除しました。
    ```

### 6\. 新規に回復パーティションを作成する

　6-1-i. GPT形式のパーティションを作成する場合

-
    ```vb:DiskPart
    create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac

    ' DiskPart は指定したパーティションの作成に成功しました。
    
    gpt attributes =0x8000000000000001

    ' 選択された GPT パーティションに DiskPart で属性を割り当てました。
    ```

　6-1-ii. MBR形式のパーティションを作成する場合

-
    ```vb:DiskPart
    create partition primary id=27
    ```

　6-2. パーティションをNTFS形式でフォーマットしたい場合（任意）

-
    ```vb:DiskPart
    format quick fs=ntfs label="Windows RE tools"
    ```

　6-3. サイズが拡張された回復パーティションが作成されていることの確認

-
    ```vb:DiskPart
    list partition

    '   Partition ###  Type              Size     Offset
    '   -------------  ----------------  -------  -------
    '   Partition 1    システム　          100 MB  1024 KB
    '   Partition 2    予約　　　           16 MB   101 MB
    '   Partition 3    プライマリ          930 GB   117 MB
    '   Partition 4    回復　　　         1025 MB   930 GB
    ```

### 7\. DiskPartを終了する

```vb:DiskPart
exit

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

### 8\. WinREを再度有効化する

```vb
reagentc /enable

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