High Sierra で Boot Camp な Windows 10 を削除するのに苦労したのでメモ

Boot Camp で Mac に Windows 10 をインストールしていたものの、ほとんど使っていないし、 macOS 側の容量も逼迫してきたためWindows 10 を削除することに。

- [Newer Mac + Windows 10 on Boot Camp + Hyper-V enabled = Infinite Spinning Circle](https://medium.com/@naokisatoname/newer-mac-windows-10-on-boot-camp-hyper-v-enabled-infinite-spinning-circle-5631b36f6d18)

この記事を書いたときに何度か Windows のインストールを試した記憶があり、その際には Boot Camp Assistant ですんなり Windows 領域の削除もできた(と思う)ので、何も考えずにやってみたら、思いのほか苦労したため、メモ。

## はじめに警告

**本記事に示す対処法、手順等は、詳細の裏付けも得られておらず、完全に無保証です。何かあっても責任は取れません。作業の前には必ずデータのバックアップをお願いします。**

## 問題

macOS 10.12 Sierra の時点で Boot Camp Assistant を使用して導入した Windows 10 を、 macOS 10.13 High Sierra で削除しようと Boot Camp Assistant を起動しウィザードを進めると、

```text
The startup disk cannot be partitioned or restored to a single partition.
(起動ディスクにはパーティションの作成および単一パーティションへの復元はできません)
```

なるエラーが発生して操作を行うことができない。

## 背景

- Mac
    - MacBook (Retina, 12-inch, Early 2016)
- OS (Mac)
    - macOS High Sierra 10.13.3
- OS (Windows)
    - Windows 10 Professional
    - macOS High Seirra へのアップデート前に Boot Camp Assistant で導入
- ストレージ
    - 500GB SSD x 1本
    - 120GB が Windows 用、残りが macOS 用 (APFS)

## 対処手順

公式なドキュメント等は見つけられなかったため、 Apple の Communities 内の次のスレッド等を参考に対処。

- [Problem deleting Windows 10 Bootcamp partition](https://discussions.apple.com/thread/8223919)
- [Cannot remove Boot Camp partition](https://discussions.apple.com/thread/8239033)

書き込みによると、 `Notice you have Windows RE as disk0s4. BC Assistant will not make any changes to this disk.` ということなので、 Windows Recovery Environment が存在していると問題が発生するのかもしれない。

1. Terminal を起動する
2. `diskutil list` コマンドを実行し、 `/dev/disk0` のパーティション構成を確認する (以下は、こんな感じだったという例)

    ```text
    /dev/disk0 (internal):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                         500.3 GB   disk0
       1:                        EFI EFI                     314.6 MB   disk0s1
       2:                 Apple_APFS Container disk1         379.1 GB   disk0s2
       3:       Microsoft Basic Data BOOTCAMP                120.0 GB   disk0s3
       4:           Windows Recovery                         900.0 MB   disk0s4
    ```
3. 次のコマンドを実行し、 Windows 領域のパーティションを統合する

    ```bash
    $ diskutil eraseVolume jhfs+ BC1 disk0s3
    $ diskutil eraseVolume jhfs+ BC2 disk0s4
    $ diskutil mergePartitions jhfs+ BCMP disk0s3 disk0s4
    ```
4. `disk0s4` が `disk0s3` に統合され、 `Winodws Recovery` パーティションがなくなっているはずなので、 `diskutil list` コマンドで確認する
5. 次のコマンドを実行し、 Windows 領域のパーティションのタイプを変更する

    ```bash
    $ diskutil eraseVolume fat32 BOOTCAMP disk0s3
    ```

以上を実施した上で Boot Camp Assistant を起動すると Windows 領域削除の処理が実行できるようになる。

## 補足1

Boot Camp Assistant から Windows 領域を削除する処理を開始したところ、 Mac の画面が、カーソルは動くものの、その他がフリーズしたように表示される状態になりましたが、下の `補足2` に記すとおり、 Disk Utility から同様の処理を実施しようとする際にはそのような現象が発生し得る旨の警告が表示されるため、 **正常な挙動** と思われます。
ちなみに、同警告には、現象が発生しても電源は切らないように、とも書かれているので、フリーズしたように見えても慌てずに待った方が安全だと思います。

## 補足2

今回は、画面がフリーズして処理が進んでいないように見えてしまったため、電源を強制終了してしまったのですが、再起動後に Disk Utility で確認すると Windows 10 のパーティションが消えていたように見えたものの、 macOS のパーティションサイズが Windows 領域削除前から変化しておらず、サイズの増加もできない、という状態になりました。
よくよく確認してみると、削除した Windows 領域が **未使用領域というパーティション** として残っており、そのパーティションを削除する、という処理を行うことで macOS 用の領域として使用できるようになりました。

なお、パーティション操作の処理を開始しようとすると、処理中には画面が停止したように見える状態が暫く継続される可能性がある旨の警告が表示され、実際に開始した直後から **30分以上** 画面がフリーズしたような状態になりました。 Windows 領域のサイズによっては更に長い時間がかかるかもしれません。