macOS Mojave 10.14.2 において、BootCamp でインストールした Windows 10 環境を削除しようとしたときに少し苦労したのでブログ記事にします。
正常時の Windows の削除方法
正常な場合、「Boot Camp アシスタント」を開き、画面の指示に従うと削除できるようです。
失敗編
ただ、手元の環境で実行しようとすると下記のエラーが表示され削除されませんでした。
起動ディスクにはパーティションの作成および単一パーティションへの復元はできません。
起動ディスクがMac OS拡張(ジャーナリング)の単一ボリュームでフォーマットされているか、Boot Campアシスタントを使用してWindowsをインストールするためのパーティションがすでに作成されている必要があります。
ディスクユーティリティを確認したところ、Boot Campアシスタントを利用してWindowsをインストールするためのパーティションが既に作成されている状態です。
また、Macbook のため、標準以外のディスクの接続はありません。
原因調査編
同様のエラーメッセージで検索すると、Apple 社の下記ページにリンクしているページがありましたが、現在はリンク切れのようでした。
Boot Camp:Boot Camp アシスタントの使用中にパーティション警告メッセージが表示される – Apple サポート
https://support.apple.com/ja-jp/HT203913
WeybackMachine で確認したところ下記が書かれていたようです。
> 「パーティション」タブをクリックします。
> 「disk0s3」または「disk0s5」という名前の余分なパーティションを探します。そのパーティションを選択して強調表示させます。
現行の Mojave 版のディスクユーティリティには、パーティションタブはありませんし、disk0s3またはdusk0s5といったものも見つけられませんでした。
ただ、
> Windows 8 から Windows 8.1 へのアップグレードインストールを実行すると、これらの追加パーティションが作成されます。この余分のパーティションを削除するまで、Boot Camp アシスタントを続行することはできません。
といった記載もあり、確かに Windows 10 April 2018 Update(1803)から、October 2018 Update(1809)にアップデートした心当たりもあり、パーティションの不整合が発生していると推測されます。
解決編
結論、下記のページを参考に解決できました。
1. 端末を起動する
2. diskutil list コマンドで /dev/disk0 のパーティション構成を確認する
$ diskutil list /dev/disk0 (internal): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme 251.0 GB disk0 1: EFI EFI 314.6 MB disk0s1 2: Apple_APFS Container disk1 210.0 GB disk0s2 3: Microsoft Basic Data BOOTCAMP 39.8 GB disk0s3 4: Windows Recovery 885.0 MB disk0s4
3. 次のコマンドを実行し、 Windows 領域のパーティションを統合する
$ diskutil eraseVolume jhfs+ BC1 disk0s3 Started erase on disk0s3 BOOTCAMP Unmounting disk Erasing Initialized /dev/rdisk0s3 as a 37 GB case-insensitive HFS Plus volume with a 8192k journal Mounting disk Finished erase on disk0s3 BC1
4. もう一度 diskutil list コマンドでパーティション構成を確認する
$ diskutil list /dev/disk0 (internal): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme 251.0 GB disk0 1: EFI EFI 314.6 MB disk0s1 2: Apple_APFS Container disk1 210.0 GB disk0s2 3: Apple_HFS BC1 39.7 GB disk0s3
この状態でなぜか disk0s4 が消えていました。
参考にした Qiita では disk0s4 を削除されていましたが、もちろんこの状態では削除できませんでした。
5. この状態で Boot Camp アシスタントを開いてみる
Windows のインストール画面が表示されました。
BootCamp 用の 40GB を無視した 210GB から Windows 用パーティションを捻出しようとしているのでこれではまだ足りないようです。
6. Windows 領域のパーティションのタイプを変更する
$ diskutil eraseVolume fat32 BOOTCAMP disk0s3 Started erase on disk0s3 BC1 Unmounting disk Erasing 4096 bytes per physical sector /dev/rdisk0s3: 9681056 sectors in 1210132 FAT32 clusters (32768 bytes/cluster) bps=4096 spc=8 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=51346432 drv=0x80 bsec=9683456 bspf=1182 rdcl=2 infs=1 bkbs=6 Mounting disk Finished erase on disk0s3 BOOTCAMP
これで全手順が完了しました。
6. Boot Campアシスタントより、ディスクを単一ボリュームに復元
正常に Boot Camp 領域が認識されたようで、「ディスクを単一ボリュームに復元」画面が表示されました。
エラーも出ずに数分で完了。
ディスクユーティリティでも、250GB の単一ボリュームとして認識されたので、問題なさそうです。
まとめ
Windows 10 では半年に一回新バージョンがリリースされるので、そのたびに Boot Camp アシスタントで認識できなくなることが考えられるので、Boot Camp アシスタント側で対応していただきたいなと思いました。
そもそも、多くのユーザーは Boot Camp 領域を削除しようと思わないのかもしれませんが…