使用教程

从一条体检命令到全自动监控守护,本页覆盖 smartctl 与 smartd 的核心用法,示例均可直接复制执行。

三分钟快速上手

Windows 请以管理员身份打开终端;Linux / macOS 直接使用 sudo。

第 1 步 · 扫描磁盘设备
smartctl --scan # 输出示例: /dev/sda -d scsi # /dev/sda, SCSI device /dev/nvme0 -d nvme # /dev/nvme0, NVMe device
第 2 步 · 查看健康总评
smartctl -H /dev/sda # 关注这一行: SMART overall-health self-assessment test result: PASSED # PASSED = 通过; FAILED! = 立即备份数据并换盘
第 3 步 · 拉取完整 SMART 档案
smartctl -x /dev/sda # 全部信息(推荐, 含 SSD/NVMe 扩展项) smartctl -a /dev/nvme0 # NVMe 盘健康信息

设备名说明: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)。最简配置一行搞定全盘监控:

smartd.conf 最简配置
# 自动扫描全部 ATA/SCSI/NVMe 设备, 每 30 分钟轮询一次, # 健康状态变差、属性越限、温度变化超限(可选)时邮件告警 DEVICESCAN -H -m root@localhost -M daily # 需要外部邮箱收信时, 指定本机邮件转发配置: # DEVICESCAN -H -m admin@example.com -M exec /usr/local/bin/alert.sh

启动并设为开机自启(Linux systemd)

绝大多数发行版安装包已自带 systemd 服务单元,直接启用即可。

启用 smartd 服务
sudo systemctl enable --now smartd systemctl status smartd # 确认 active (running) journalctl -u smartd -f # 实时查看监控日志

定期自检计划(可选)

在 DEVICESCAN 行追加 -s 参数即可安排自动短/长测试,避开业务高峰。

自检排程示例
# 每天凌晨 2:10-2:40 之间执行短测试 DEVICESCAN -H -m root -s (S/../.././02/10|S/../.././02/40) # 每周日凌晨执行长测试(完整盘面) DEVICESCAN -H -m root -s (L/../../7/02)

Windows 用户:安装包内置 smartd 服务,运行 smartd.exe 首次注册后即可在"服务"管理器中看到,邮件告警需配合本地邮件客户端脚本,社区常用 -M exec 调用 PowerShell 实现企业微信/钉钉推送。

smartctl 退出码速查

smartctl 的退出码是位掩码,便于脚本精确判断故障层级。

退出码 含义
0一切正常,磁盘健康通过
1命令行语法错误
2无法打开磁盘设备(权限或设备名错误)
3内部 SMART 命令失败或设备不支持
4设备报告 SMART 健康状态为 FAILED / 临界
8SMART 错误日志中存在记录
16SMART 自检日志中存在失败记录
32SMART 属性存在越限(ID 与阈值比较失败)
64错误日志中记录了设备错误
128错误日志中记录了未知错误

位掩码可叠加:例如退出码 12 = 4 + 8,表示"健康判定失败且错误日志非空"。

延伸阅读:各属性数值如何判读、HDD/SSD/NVMe 指标差异,见SMART 知识 · 关键属性逐项解读。

图形界面替代方案:GSmartControl

不习惯命令行的用户,可选择基于 smartctl 的开源图形前端 GSmartControl。

GSmartControl

跨平台(Windows / Linux / macOS)图形前端,点选磁盘即可查看 SMART 全量信息、发起自检,当前版本 2.x,开源免费。适合不想记命令的个人用户。

命令行仍是首选

服务器环境、批量巡检、监控集成场景下,smartctl 的 JSON 输出与退出码机制依旧是效率最高的方案,也是本教程推荐的主路径。