先用sudo smartctl -i确认硬盘是否支持并启用SMART,再通过sudo smartctl -A查看Reallocated_Sector_Ct、Current_Pending_Sector等关键原始值判断真实健康状态,NVMe盘必须加-d nvme参数,自检需按场景选择short或long模式。

确认硬盘设备名和SMART是否可用
别急着跑命令,先搞清你要查的是哪块盘、它能不能被smartctl读到真实数据。运行lsblk或sudo fdisk -l,找出目标设备(比如/dev/sda或/dev/nvme0n1)。然后立刻执行:sudo smartctl -i /dev/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(对应RAID阵列中第一块物理盘)。
别只信smartctl -H的“PASSED”
sudo smartctl -H /dev/sda返回PASSED,不代表硬盘安全——它只是固件当前快照,可能被RAID卡伪造,也可能忽略掉已存在但尚未重映射的Current_Pending_Sector。
真正该盯住的是smartctl -A /dev/sda输出里的原始值(RAW_VALUE),尤其这四个ID:
-
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寿命将尽;机械盘不用看
跑自检要分场景,别一上来就-t long
短自检(sudo smartctl -t short /dev/sda)约2分钟,只扫高频区域(FAT、目录区),适合日常巡检;长自检(sudo smartctl -t long /dev/sda)遍历全部LBA,在HDD上可能耗时数小时,期间I/O响应明显变慢甚至卡顿。
除非Current_Pending_Sector > 0,否则别轻易跑-t long——它不会修复坏道,只是把pending扇区逼出来,可能让盘当场掉线。SSD上长自检意义不大,重点看Media_Wearout_Indicator和Available_Reserve_Space。
查进度用sudo smartctl -c /dev/sda;中断后台任务用sudo smartctl -X /dev/sda;结果必须用sudo smartctl -l selftest /dev/sda查日志,Status列为Completed才算真跑完。
NVMe盘要用-d nvme参数,别漏掉
NVMe盘设备名通常是/dev/nvme0n1,但直接sudo smartctl -a /dev/nvme0n1会报错或返回空。必须显式指定驱动类型:sudo smartctl -a -d nvme /dev/nvme0n1。
另外,NVMe盘的Error Information Log Entries数值常达数百甚至数千,这不是故障信号——它只是软件向控制器发出的无法执行的错误指令累计数,和盘本身质量、寿命无关。驱动升级可能显著缓解该值快速增长。


















