smartctl健康检查不能只看-h的passed,须确认设备通路、紧盯-a原始值(如id5/197/199/233)、按需执行short/long自检,并用smartd实现自动化监控。

直接用 smartctl 查健康状态,不能只看一眼 -H 的 “PASSED” 就放心——它只是快照,可能掩盖真实风险。关键在确认通路、盯住原始值、按需自检。
确认设备名和 SMART 是否真实可用
先找出目标盘:lsblk -d -o NAME,MODEL,SIZE,ROTA 或 sudo fdisk -l | grep 'Disk /dev'。机械盘 ROTA=1,SSD/NVMe 为 0。
再验证 SMART 是否能读到真实数据:sudo smartctl -i /dev/sda(把 sda 换成你的设备)。重点看两行:
- SMART support is: Available → 硬盘本身支持 SMART
-
SMART support is: Enabled → 当前已启用,可读;若显示 Disabled,运行
sudo smartctl -s on /dev/sda开启
如果报 ATA device not found 或 No Information,大概率是 RAID 卡(如 LSI MegaRAID)挡住了。此时要加设备类型参数,例如:sudo smartctl -i -d megaraid,0 /dev/sdb(对应阵列中第一块物理盘)。
别信 -H 的 PASSED,重点看 -A 的原始值
sudo smartctl -H /dev/sda 返回 PASSED ≠ 安全。真正要盯的是 sudo smartctl -A /dev/sda 输出中的 RAW_VALUE 列(不是 VALUE 列),尤其这四个 ID:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- ID 5(Reallocated_Sector_Ct):>0 表示已有物理坏道被重映射;数值持续上涨 = 盘在加速报废
- ID 197(Current_Pending_Sector):>0 是红灯,说明有扇区读写不稳,下次访问可能触发硬错误
- ID 199(UDMA_CRC_Error_Count):非盘本身问题,多因线缆松动、供电不稳或主板 SATA 口老化;反复上升先换线再测
- ID 233(Media_Wearout_Indicator):仅 SSD 有效,RAW_VALUE 接近 0 表示 NAND 寿命将尽;机械盘忽略此项
NVMe 盘必须加 -d nvme 参数,且要用 -a(不是 -A)才能看到 Percentage Used 字段,剩余寿命 ≈ 100 - Percentage Used。
自检要分场景,别乱跑 long
短自检(sudo smartctl -t short /dev/sda)约 2 分钟,只扫目录区等高频区域,适合日常巡检。
长自检(sudo smartctl -t long /dev/sda)遍历全部 LBA,在 HDD 上可能耗时数小时,期间 I/O 明显卡顿。除非 ID 197 > 0,否则别轻易跑 —— 它不会修复坏道,只是把 pending 扇区逼出来,可能导致盘当场掉线。
查进度用 sudo smartctl -c /dev/sda;中断任务用 sudo smartctl -X /dev/sda;结果必须用 sudo smartctl -l selftest /dev/sda 查日志,Status 列为 Completed 才算真跑完。
自动化监控建议
手动检查容易遗漏。可配置 smartd(smartmontools 自带守护进程),设置阈值告警,比如 ID 197 > 0 或 NVMe 的 Percentage Used > 85% 时发邮件或记录日志。简单定时脚本也可应急,但不如 smartd 稳定可靠。










