要查macOS所有已挂载磁盘的底层协议,需组合diskutil info提取Protocol字段并用system_profiler验证物理接口:diskutil info给出NVMe/USB/Thunderbolt等基础协议,system_profiler(SPNVMeDataType、SPUSBDataType、SPTHunderboltDataType)则提供Link Width、Speed、Version等权威硬件细节,二者结合才能准确区分物理连接方式与文件系统类型。
要查 macos 所有已挂载磁盘的底层协议(比如 nvme、usb 3.2、thunderbolt),不能只靠 mount——它只显示文件系统类型(如 apfs)和挂载选项,不反映物理连接方式。真正有效的方法是组合 diskutil info 提取协议字段,再配合 system_profiler 验证硬件级细节。
用 diskutil info 批量提取挂载点对应的协议
以下命令可一次性列出每个挂载点及其底层协议(如 NVMe、USB、Thunderbolt):
for vol in $(df -h | grep '^/dev/' | awk '{print $1}'); do dev=$(echo "$vol" | sed 's/s[0-9]*$//'); proto=$(/usr/sbin/diskutil info "$dev" 2>/dev/null | grep "Protocol:" | awk -F': ' '{print $2}' | tr -d ' '); mount_point=$(df -h | grep "^$vol " | awk '{print $6}'); echo "$mount_point → $proto ($dev)"; done | sort -u
输出类似:
/ → NVMe (disk0)
/Volumes/MySSD → USB (disk2)
/Volumes/Backup → Thunderbolt (disk3)
注意:Protocol: 字段来自 diskutil info,但有时会显示为 USB,即使你插的是雷电硬盘盒——这时需进一步验证是否被桥接降级。
用 system_profiler 确认物理接口真实协议
diskutil 的 Protocol 是基础参考,system_profiler 才是权威来源,能显示控制器型号、协商速度和总线拓扑:
- 内置 NVMe 固态盘:运行
system_profiler SPNVMeDataType,查找「Link Width」和「Speed」(如 PCIe Gen4 x4 @ 16 GT/s) - USB 外置设备:运行
system_profiler SPUSBDataType,展开设备 → 查看「Version」和「Speed」(如 USB 3.2 Gen 2 / 10 Gbps) - Thunderbolt 设备:运行
system_profiler SPTHunderboltDataType,若设备出现在该列表中,说明走原生雷电通道,性能优于 USB 模式
快速定位某挂载点对应的具体设备与协议
如果你只关心某个卷(比如 /Volumes/External):
先查设备节点:df -P "/Volumes/External" | tail -1 | awk '{print $1}'
得到类似 /dev/disk4s1,再剥离分区号:diskutil info /dev/disk4 | grep -E "(Protocol:|Device Tree Path:)"
输出中 Protocol: 直接告诉你连接类型;Device Tree Path: 含控制器信息(如 IOThunderboltController 或 IOUSBHostInterface),可交叉印证。
区分“协议”和“文件系统”,避免混淆
常见误区是把 APFS/HFS+ 当作协议——它们是逻辑格式,不是物理连接方式。例如:
- 一块外置 SSD 可能格式化为 APFS,但底层是 USB 3.2 Gen 2 协议
- MacBook 内置硬盘是 APFS 容器,但物理层是 NVMe over PCIe
- 同一块硬盘插在 USB-C 口,可能走 USB 协议;插在雷电口且硬盘盒支持,才启用 Thunderbolt 协议
协议决定带宽上限,文件系统影响读写调度。两者需分开看。


















