系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

diskutil

查看、分区、格式化、挂载和校验 macOS 磁盘与 APFS 卷。

补充说明

diskutil 通过 Disk Arbitration 操作本地磁盘,既能查询(list、info、activity、listFilesystems),也能修改分区表、文件系统和挂载状态。磁盘标识分两层:disk2 是整块盘,disk2s1 是其中的分区或卷;擦除整盘和擦除单个卷是完全不同的破坏范围。Linux 没有同名工具,对应能力分散在 lsblk、parted、mkfs 等命令中。

APFS 使用容器(container)管理多个卷,容器内的卷共享空闲空间。diskutil apfs list 查看容器与卷的关系,diskutil apfs addVolume disk3 APFS "Work" 在现有容器中新增卷,diskutil apfs deleteVolume disk3s5 只删除指定卷。eraseVolume 只重建一个分区上的文件系统,eraseDisk 会重建整个分区表。

文件系统名称用 diskutil listFilesystems 查询:APFS、APFSX(区分大小写)、JHFS+、ExFAT、MS-DOS FAT32 等。分区方案常用 GPT,老式 Mac 启动盘才用 APM,跨 Windows 老设备可能用 MBR。

影响范围:eraseDisk 会清除目标整块盘上的所有分区、卷和本地快照;partitionDisk 同样删除盘上全部卷;eraseVolume 只清除指定分区,但仍不可逆。误操作会影响启动盘、Boot Camp 和外接备份盘。 先备份:执行前确认目标盘不是启动盘,拔掉无关外接盘,把重要数据复制到另一块盘并验证可读。 如何回滚:没有撤销。只能从 Time Machine 或其他备份恢复;没有备份时立即停止写入并寻求专业数据恢复,SSD 开启 TRIM 后成功率更低。

常用示例

# 先列出所有磁盘,核对整盘与分区的标识和容量
% diskutil list

# 查看目标盘的型号、协议、挂载点与所有权状态
% diskutil info disk2

# 查看 APFS 容器、卷、角色与共享空间
% diskutil apfs list

# 安全卸载整块盘的所有卷,再物理拔出
% diskutil unmountDisk /dev/disk2

# 卸载后弹出外接盘
% diskutil eject /dev/disk2

# 在现有 APFS 容器中新增一个卷(不删除其他卷)
% sudo diskutil apfs addVolume disk3 APFS "Work"

# 擦除整块盘为 APFS/GPT;执行前务必再次 diskutil list 核对 disk2
% sudo diskutil eraseDisk APFS "Backup" GPT /dev/disk2

# 把整盘分成两个分区:50% APFS,剩余空间给 ExFAT
% sudo diskutil partitionDisk /dev/disk2 2 GPT APFS "Data" 50% ExFAT "Share" R

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. disk2、disk2s1 和 APFS 容器三者是什么关系?
  2. eraseDisk、eraseVolume、deleteVolume 的破坏范围分别是什么?
  3. 为什么执行擦除前不能依赖上一次记住的磁盘编号?
答案
  1. disk2 是整块盘,disk2s1 是分区/卷,APFS 容器位于分区之上并可包含多个卷。
  2. eraseDisk 清整盘分区表,eraseVolume 清一个分区,deleteVolume 只删指定 APFS 卷。
  3. 插拔、重启和挂载镜像都会改变编号,必须每次用 diskutil list 重新确认。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令