三分钟快速上手
Windows 请以管理员身份打开终端;Linux / macOS 直接使用 sudo。
设备名说明:Linux 下 SATA 盘通常为 /dev/sdX,NVMe 盘为 /dev/nvmeX;macOS 下可使用 /dev/diskX;Windows 下 smartctl --scan 会给出 /dev/pdX 或 /dev/sdX 形式的设备名。
smartctl 常用命令速查
按检测深度从浅到深排列,日常体检记住前三条即可。
| 命令 | 用途 | 说明 |
|---|---|---|
smartctl -H <设备> |
健康总评 | 只输出 PASSED / FAILED 结论,适合脚本轮询 |
smartctl -A <设备> |
SMART 属性表 | 查看重映射扇区、通电时间等关键指标 |
smartctl -i <设备> |
设备信息 | 型号、序列号、固件、容量、接口 |
smartctl -x <设备> |
全量档案 | 包含属性、错误日志、自检日志、厂商专有日志 |
smartctl -l error <设备> |
错误日志 | ATA 错误历史记录,空为佳 |
smartctl -l selftest <设备> |
自检结果 | 查看历次自检结论与剩余时间 |
smartctl -t short <设备> |
启动短测试 | 约 2 分钟,覆盖电学与读取快速筛查 |
smartctl -t long <设备> |
启动长测试 | 完整盘面扫描,机械盘需数小时 |
smartctl -j -H <设备> |
JSON 输出 | 接入监控系统的首选格式 |
smartctl -X <设备> |
中止自检 | 可随时中断正在运行的测试 |
smartd:7×24 小时自动监控
把"记得去检查"交给守护进程,异常时自动邮件告警。
编辑配置文件
打开 /etc/smartd.conf(Windows 安装目录下为 smartd.conf)。最简配置一行搞定全盘监控:
启动并设为开机自启(Linux systemd)
绝大多数发行版安装包已自带 systemd 服务单元,直接启用即可。
定期自检计划(可选)
在 DEVICESCAN 行追加 -s 参数即可安排自动短/长测试,避开业务高峰。
Windows 用户:安装包内置 smartd 服务,运行 smartd.exe 首次注册后即可在"服务"管理器中看到,邮件告警需配合本地邮件客户端脚本,社区常用 -M exec 调用 PowerShell 实现企业微信/钉钉推送。
smartctl 退出码速查
smartctl 的退出码是位掩码,便于脚本精确判断故障层级。
| 退出码 | 含义 |
|---|---|
0 | 一切正常,磁盘健康通过 |
1 | 命令行语法错误 |
2 | 无法打开磁盘设备(权限或设备名错误) |
3 | 内部 SMART 命令失败或设备不支持 |
4 | 设备报告 SMART 健康状态为 FAILED / 临界 |
8 | SMART 错误日志中存在记录 |
16 | SMART 自检日志中存在失败记录 |
32 | SMART 属性存在越限(ID 与阈值比较失败) |
64 | 错误日志中记录了设备错误 |
128 | 错误日志中记录了未知错误 |
位掩码可叠加:例如退出码 12 = 4 + 8,表示"健康判定失败且错误日志非空"。
延伸阅读:各属性数值如何判读、HDD/SSD/NVMe 指标差异,见SMART 知识 · 关键属性逐项解读。
图形界面替代方案:GSmartControl
不习惯命令行的用户,可选择基于 smartctl 的开源图形前端 GSmartControl。
GSmartControl
跨平台(Windows / Linux / macOS)图形前端,点选磁盘即可查看 SMART 全量信息、发起自检,当前版本 2.x,开源免费。适合不想记命令的个人用户。
命令行仍是首选
服务器环境、批量巡检、监控集成场景下,smartctl 的 JSON 输出与退出码机制依旧是效率最高的方案,也是本教程推荐的主路径。

