用diskutil list可查看所有已挂载卷的volume uuid,仅挂载卷显示该字段;对/volumes下指定卷运行diskutil info "/volumes/卷名"可获取完整uuid信息;批量提取可用for循环或mount+awk组合命令。

要快速获取Mac当前所有已挂载磁盘分区的唯一标识符(UUID),必须绕过图形界面的模糊展示,直接从系统元数据中提取——因为UUID是Time Machine识别备份盘、/etc/fstab自动挂载、脚本精准控制设备的核心依据,而Finder和“磁盘工具”根本不显示它。
用diskutil list一次性列出所有挂载卷的UUID
打开“终端”,执行:
diskutil list
该命令输出中,每个已挂载的宗卷(如 Macintosh HD、MySSD)右侧会明确标注“Volume UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”。未挂载的分区(如Not mounted状态的Recovery)不显示UUID字段——【只有已挂载的宗卷才生成并暴露Volume UUID】。
注意:EFI分区永远不挂载,因此在diskutil list里也看不到它的Volume UUID;它只有Disk UUID(可通过diskutil info disk0s1查得),但那不是Time Machine所认的卷级标识。
对指定挂载点逐个查询完整UUID信息
若你已知某卷挂载在/Volumes下(例如/Volumes/BackupDrive),运行:
diskutil info "/Volumes/BackupDrive"
输出中会清晰分段列出:
Volume UUID: 9A2B3C4D-5E6F-7G8H-9I0J-K1L2M3N4O5P6
Disk UUID: 1X2Y3Z4W-5V6U-7T8S-9R0Q-P1O2N3M4L5K6
前者用于Time Machine和fstab,后者仅用于底层设备定位。
这一步操作起来很简单,直接把路径粘贴进命令就行。但务必用英文双引号包裹含空格的卷名,否则shell会报错“no such file or directory”。
批量提取所有/Volumes下挂载卷的Volume UUID
第一步:列出所有挂载在/Volumes下的卷名
ls /Volumes
第二步:对每个卷名执行diskutil info并提取UUID行
for vol in $(ls /Volumes); do echo "== $vol =="; diskutil info "/Volumes/$vol" | grep "Volume UUID"; done
该循环会逐个打印卷名与对应Volume UUID。若某卷因权限或格式异常无法读取,对应行将为空——此时需单独检查其文件系统类型(diskutil info输出中的File System Personality)是否为APFS/HFS+/exFAT等macOS原生支持格式。
注意:不要对 .Trashes、.DS_Store 或 .fseventsd 这类隐藏目录运行此命令,它们不是独立卷,diskutil会报错。
用mount + diskutil info组合定位未知挂载点的UUID
方法一:先查挂载路径
mount | grep " /Volumes/"
方法二:从输出中复制路径(如/dev/disk2s1 on /Volumes/MyUSB),提取/Volumes/后半部分(MyUSB),再代入:
diskutil info "/Volumes/MyUSB" | grep "Volume UUID"
方法三:跳过人工复制,用awk一行提取(适合熟练用户):
mount | awk '/\/Volumes\// {gsub(/^.*\/Volumes\//,"",$3); print $3}' | xargs -I {} sh -c 'echo "{}:"; diskutil info "/Volumes/{}" 2>/dev/null | grep "Volume UUID"'
这组命令能应对挂载点名称含特殊字符(如括号、中文)的情况,比单纯ls更鲁棒。











