bootcamp 无法删除 Windows 10分区
很久之前在Mac上使用bootcamp安装了windows10, Mac升级到10.13.4 High Sierra之后发现自己几乎没用过win10. 于是想删除bootcamp分区, 理想情况下使用bootcamp助理应该可以无痛删除win10分区. 然而mac在升级之后应该是使用了新的文件系统格式APFS.
打开bootcamp助理后, 提示错误: 启动磁盘不能被分区或恢复成单个分区
, 无法继续.
官方说明: 将 Boot Camp 升级到 Windows 8.1 或更高版本时,您可能会看到一则警告信息“启动磁盘不能被分区或恢复成单个分区”。
于是开始折腾. 在没有做数据备份的情况下, 一路有惊无险, 记录解决过程如下.
1 | 警告:磁盘操作具有破坏性、高风险,建议操作前做好备份. 你必须十分清楚自己在做什么. |
分区情况
找开磁盘工具查看分区表, 这里借用网上找到的一张图片, 操作之前没有截图.
我的情况是除了mac APFS分区顺时针有一个8G的未格式化可用空间, 40G的windows10分区, 以及一个800M的disk0s4额外分区(Microsoft 保留或者Windows 恢复分区).
使用diskutil
工具查看分区表
1 | ╰─ diskutil list |
这里注意到8G的未格式化可用空间的分区在分区表中找不到.
这里也决定了我按照官方的操作方法无法成功. 在磁盘工具分区里删除选择disk04分区, 点击上图-
号后, 应用里提示错误: 无法找到其中一个分区
. 我推测这里应该是找不到8G空间那个分区导致无法使用磁盘工具正常删除disk0s4分区.
diskutil eraseVolume
使用命令行工具删除disk0s4分区, 然后删除disk0s3分区(bootcamp分区). 这里顺序很重要.
1 | ╰─ sudo diskutil eraseVolume JHFS+ deleteme /dev/disk0s4 |
这时使用磁盘工具, 选择根卷分区, 选择disk0s4分区, 点击减号, 选择disk0s3分区, 点击减号. 可以成功合并原来disk0s4 disk0s3的空间.
1 | ╰─ diskutil list |
这时已经将bootcamp分区 disk0s3 格式化成 HFS+ 格式. 但是由于那个8G空间分区无法在分区表中找到. 始终无法使用磁盘工具将8G空间分区和bootcamp分区合并到mac APFS分区中.
diskutil mergePartitions
根据网上找到的资料, 开始作死使用diskutil mergePartitions
命令尝试合并分区.
1 | ╰─ diskutil mergePartitions --help |
发现无法成功
1 | ╰─ diskutil mergePartitions APFS randall disk0s2 disk0s3 |
diskutil apfs resizeContainer
不得不赞mac命令行工具的提示真的做得非常好, 在这里发现了关键性的信息:
1 | APFS格式分区可以使用diskutil apfs resizeContainer命令自动扩展空间到下一个可用分区. |
8G空间分区本身是未格式化的, 符合要求.
1 | ╰─ diskutil apfs resizeContainer disk0s2 0 |
运行成功, 打分磁盘工具, 查看根卷分区, 发现8G空间分区已经被合并至APFS分区, 只剩下一个40G的bootcamp分区.
选择bootcamp分区, 点击减号, 应用成功. 成功将所有分区合并成一个完整大分区.
现在Mac只有一个分区了.
1 | ╰─ diskutil list |
Done.
参考: BOOTCAMP 分区无法删除