硬盘要坏之前会先说话:NAS 上真正该盯的 8 个 SMART 指标
去年有一块盘,SMART 里 Current_Pending_Sector 从 0 变成 8。我当时看了眼「健康状态:良好」,就没管。两周后它开始掉盘,重建时又把另一块拖下水——那次之后我才认真读了 SMART 的字段说明。
硬盘的故障绝大多数不是瞬时的,是渐进的:坏道一点点扩散,磁头读写越来越吃力,重试次数越来越多。这些过程都会写进 SMART,只是默认没人看,或者看了也不知道该看哪几个数。
这篇只说有用的:8 个指标、三档处置、一套能直接跑的监控脚本。
一、先分清三种「坏」
不同故障类型,SMART 的价值完全不同:
| 故障类型 | 表现 | SMART 能不能提前发现 |
|---|---|---|
| 渐进性坏道 | 读某些文件变慢、报 I/O 错误 | 能,提前几天到几周 |
| 磁头/电机衰减 | 异响、寻道变慢、重试增多 | 能,看错误计数增长 |
| 链路问题 | 掉盘、CRC 报错、速率协商降级 | 能,但容易误判成盘坏 |
| 电路板击穿 | 直接不识别 | 基本不能 |
| 固件锁死 | 突然变砖、容量异常 | 基本不能 |
| 断电/震动损伤 | 突然出现大量坏道 | 事后才能看到 |
所以 SMART 的定位是:管得住「慢慢坏」,管不住「突然死」。 这也是为什么它永远不能替代备份。
二、8 个真正该盯的指标
SATA 盘的属性有几十项,绝大多数是厂商自用、没有统一含义。下面这 8 个是跨品牌都有意义、且能直接指导动作的:
| ID | 名称 | 正常值 | 危险信号 | 说明 |
|---|---|---|---|---|
| 5 | Reallocated_Sector_Ct | 0 | 从 0 开始涨,短期到两位数 | 已用备用扇区替换的坏道数 |
| 187 | Reported_Uncorrect | 0 | > 0 | 无法纠正的读写错误 |
| 197 | Current_Pending_Sector | 0 | > 0 | 有扇区读不出来、等待重映射 |
| 198 | Offline_Uncorrectable | 0 | > 0 | 离线扫描发现的不可纠正扇区 |
| 199 | UDMA_CRC_Error_Count | 0 或稳定 | 持续增长 | 链路错误,先怀疑线不是盘 |
| 194 | Temperature_Celsius | < 45℃ | ≥ 50℃ 处理,≥ 55℃ 危险 | 盘体温度 |
| 9 | Power_On_Hours | — | > 30000h 提高警惕 | 通电时长,寿命参考 |
| 193 | Load_Cycle_Count | — | > 300000 | 磁头加载次数,频繁休眠的盘最容易被它耗死 |
几个必须说清的点:
197 是最急的那个。 它表示「有扇区现在读不出来,等着被重映射」。一旦大于 0,说明盘上已经有读不到的地方了,立刻备份,然后准备换盘,别等它涨。
5 要看增长,不看绝对值。 有些盘出厂就带几个,多年不涨,那是出厂测试留下的,不用管。真正危险的是从 0 开始涨,而且涨得快——那说明坏道在扩散。
199 是最容易被误判的那个。 CRC 错误九成不是盘的问题:SATA 线老化、接口氧化、背板接触不良、机箱震动导致瞬时断开,都记在这里。处置顺序是换线 → 换接口 → 换盘位 → 还涨才怀疑盘。我上次那 2 个 CRC,换根线就停了。
193 是被忽略的那个。 硬盘频繁休眠唤醒,磁头反复加载,这个数会飞快地涨。西数某些型号有过「LCC 门」,几十万次之后磁头就废了。NAS 上如果设了「硬盘休眠」,又跑着定时任务天天唤醒,等于慢性自杀——要么真休眠,要么别设。
三、趋势比绝对值重要
单次快照只能告诉你「现在怎么样」,判断不了「正在往哪走」。
我的做法很简单:每小时把所有盘的关键值追加到一行文本里,比对上一轮,只有变了才告警。这样既不会被 24 小时重复推送淹没,也不会漏掉变化。
理想情况下你会看到这样的曲线:
1 | 5 重映射: 0 → 0 → 0 → 2 → 2 → 8 → 47 ← 危险,坏道在扩散 |
四、绿黄红三档处置
不要一看到数字不对就慌,也不要一直「再观察观察」。定死标准:
绿:全部为 0,温度正常。 什么都不用做,每月看一次趋势。
黄:出现以下任一,开始准备。
- 重映射或不可纠正有小数值,但三个月不增长;
- CRC 增长过一次,换线后停止;
- 温度长期 48-52℃;
- 通电时长超过 5 年(约 44000 小时)。
动作:下一块替换盘加进购物车,异地备份改成每周一次,SMART 检测频率从每月改成每周。
红:出现以下任一,立刻行动。
- 197 或 198 大于 0;
- 重映射在两周内明显增长(比如 2 → 20);
- SMART 自检失败(
Self-test execution status报错); - 温度持续 ≥ 55℃ 且降不下来;
- 出现异响(咔哒、刮擦声)。
动作:先备份,再换盘。 顺序不能反——先拔盘再备份,等于把唯一一份数据放在一块正在坏的盘上。
五、自动化:一条脚本 + 计划任务
群晖上先确认有没有 smartctl:
1 | which smartctl || echo "需要装 SynoCommunity 的 smartmontools 包" |
脚本放在 /volume1/scripts/smart-watch.sh:
1 |
|
配上环境变量(Token 别写在脚本里):
1 | export TG_TOKEN="123456:ABC..." |
群晖上不要直接改 /etc/crontab(重启会丢),用控制面板 → 任务计划 → 新增 → 计划的任务 → 用户定义的脚本,用户选 root,计划每小时,命令填:
1 | TG_TOKEN=xxx TG_CHAT=yyy /bin/bash /volume1/scripts/smart-watch.sh |
跑之前先手动执行一遍,看有没有语法错误,再等一小时确认能收到推送。
六、群晖自带的能力别浪费
脚本管趋势,DSM 管检测,两边都要开:
- 存储管理器 → HDD/SSD → 选盘 → 健康信息:看属性、看历史曲线,比脚本直观;
- 存储管理器 → 设置 → 计划 SMART 检测:快速检测每周一次,扩展检测每月一次(扩展检测会占 IO,放凌晨);
- 存储池 → 数据清理计划:Btrfs 建议每月一次,能提前发现静默损坏;
- 控制面板 → 通知设置:把「存储空间/硬盘警告」的邮件或推送打开,别只留一个网页红点。
七、五个误报和坑
- USB 硬盘盒读不到 SMART。 加
-d sat参数(smartctl -d sat -A /dev/sdb),桥接芯片不支持就只能靠系统日志判断。 - 休眠的盘会被唤醒。 脚本每小时跑一次会让盘永远不睡。要么接受(本来也不建议 NAS 休眠),要么加
-n standby让它在休眠时直接跳过。 - 群晖设备名会变。 新 DSM 是
/dev/sata1..N,老版本是/dev/sdX;加了盘或换了盘位,顺序可能变。脚本里用[ -b ]过滤是对的,但告警里务必带设备名和型号,别只看编号。 - NVMe 的指标完全不同。 固态没有重映射扇区,要看
Percentage Used(磨损百分比)、Available Spare(剩余备用块)、Media and Data Integrity Errors(介质错误)。拿 SATA 那套去套 NVMe 会得出错误结论。 - SMR 盘重建慢不等于快坏了。 重建时间异常长、写入掉到几 MB/s,先查型号是不是 SMR,别急着判死。
八、这套东西的实际价值
配好之后,我收到的第一次告警是温度:一块盘在夏天连续三天 51℃。清了一次灰、加了个 12cm 风扇,降到 43℃。
第二次是 CRC 增长——换线,停止。
第三次是 197 出现。那次我按流程先备份、再换盘,全程没丢数据。这就是 SMART 的意义:它不阻止硬盘坏,它让「坏」变成一件有时间准备的事。
如果你的 NAS 里还只有 RAID 没有异地备份,先去把那件事补上:RAID 挡不住误删和勒索,SMART 也挡不住。两篇配合着看,才算把「硬盘会坏」这件事处理完。
常见问题
SMART 全部正常,硬盘就不会坏吗?
不能保证。SMART 能覆盖的是渐进性故障(坏道扩散、磁头衰减、电机异常),对电路板击穿、固件锁死、突然断电导致的损坏基本没有预警。行业里的经验是 SMART 能提前发现约一半到七成的机械故障,所以它只是预警系统的一层,异地备份才是最后那道保险。
重映射扇区是 0 就一定安全?
数值为 0 是好事,但要看历史。有些盘出厂时就带几个重映射(厂内测试留下的),一直不增长就没问题;真正危险的是「从 0 开始涨」,尤其是短期涨到两位数。所以看 SMART 不能只看快照,要留历史记录看斜率。
UDMA CRC 错误一直涨,是不是硬盘要坏了?
多数情况不是盘,是链路:SATA 线老化、接口氧化、背板接触不良、机箱震动导致接触瞬间断开。处置顺序是先换线、换接口、换盘位,再看数值是否停止增长。如果换了线还在涨,才怀疑盘侧的接口电路。
群晖自带的 SMART 检测够用吗?
检测够用,告警不够用。DSM 的存储管理器能看到属性和历史曲线,也能设定计划检测和邮件通知,但它不会替你判断「这个数字在涨」。建议用它做定期检测,用一条自己写的脚本做趋势比对和推送——两条腿走路。
硬盘温度多少算高?
机械盘长期高于 50℃ 就该处理,55℃ 以上属于危险区。注意 SMART 读的是盘体温度,机箱风道差、盘位挤在一起时,盘体可能比环境高 10-15℃。降温的性价比顺序是:加风扇 > 拉开盘间距 > 降低转速 > 换机箱。








