mac需用smartctl读取nvme log page 0x02获取ssd累计写入量:先装homebrew和smartmontools,再用diskutil定位disk0等物理盘,最后sudo /usr/local/sbin/smartctl -a /dev/disk0查data units written值,括号内即tbw。

Mac系统不提供图形界面直接查看SSD累计写入总量(TBW),必须通过终端调用smartmontools读取NVMe协议定义的Log Page 0x02原始字段,否则只能看到“已验证”的模糊健康状态,无法获知实际已写入多少TB。
安装并启用smartmontools工具链
第一步:打开「终端」,按 Command + 空格搜索“终端”并回车启动。
第二步:确认是否已启用Rosetta(M1/M2/M3芯片Mac必需)。右键「终端」→「显示简介」→ 勾选「使用 Rosetta 打开」→ 关闭窗口后重新打开终端。
第三步:若尚未安装Homebrew,粘贴执行:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。这一步耗时约2分钟,期间终端会提示输入密码并自动配置环境变量。
第四步:运行 brew install smartmontools 安装核心工具。安装完成后,【/usr/local/sbin/smartctl】路径即为可用命令位置,后续必须调用此全路径以避免权限或版本冲突】。
定位物理SSD设备名并执行SMART扫描
方法一:快速识别内置NVMe盘
在终端中执行:diskutil list | grep "NVMe\|internal"。输出中带“NVMe”且无“container”字样的顶层设备即为目标盘,例如 disk0 —— 注意【绝不能选 disk0s1、disk0s2 等分区名,否则 smartctl 将报错“Operation not supported”】。
方法二:更精准匹配Apple自研SSD
执行:system_profiler SPSerialATADataType | grep "Model\|Medium Type",查找类似 APPLE SSD AP1024J 的型号,再对照 diskutil list 中对应设备标识符,确保物理盘与型号严格一致。
提取Data Units Written并换算为TBW
第一步:以管理员权限运行完整路径命令(将 disk0 替换为你上一步确认的实际设备名):sudo /usr/local/sbin/smartctl -a /dev/disk0。
第二步:等待命令返回长文本,在其中搜索关键词 Data Units Written。你会看到类似这样的两行:
Data Units Written: 1,234,567 [63.2 TB]Percentage Used: 12%
括号内的 63.2 TB 即为系统已自动换算完成的累计写入总量(TBW),无需手动计算——该值由smartctl依据NVMe规范将Log Page 0x02中Offset 0x08–0x0F的8字节原始数据乘以512KB/Unit后得出,精度误差小于1.2%。
第三步:若输出中未显示括号内TB值(仅见纯数字如 1,234,567),说明设备固件未启用单位自动换算。此时需手动计算:原始数值 × 512 ÷ 1024⁴,结果保留一位小数。例如1234567 × 512 = 632098304 字节 → ÷ 1099511627776 ≈ 0.575 TB。











