服务器硬盘SMART信息查看,预判硬盘损坏
服务器硬盘在彻底损坏前,SMART信息通常会提前暴露异常。
本文面向零基础运维,讲清如何用 smartctl 查看硬盘健康状态,并通过关键属性预判风险。
照着步骤操作,你可以快速判断一块盘是继续观察、立即备份还是直接更换。
先确认环境与安装工具
大多数 Linux 服务器自带 smartmontools 包,但部分精简系统需要手动安装。
先用下面命令检查:
which smartctl
smartctl --version
如果没有输出,按系统类型安装:
# Debian/Ubuntu
apt update && apt install smartmontools -y
# CentOS/RHEL
yum install smartmontools -y
安装完成后,用 lsblk 或 fdisk -l 确认硬盘设备名,常见为 /dev/sda、/dev/sdb 或 NVMe 盘 /dev/nvme0n1。
查看SMART信息并读懂关键项
先开启 SMART 支持(多数盘默认已开):
smartctl -s on /dev/sda
然后查看整体健康摘要:
smartctl -H /dev/sda
输出中 SMART overall-health self-assessment test result: PASSED 表示通过,FAILED 则说明硬盘已报告故障,应立即备份。
再查看详细属性:
smartctl -A /dev/sda
重点盯住以下几个属性(不同厂商编号可能略有差异,以实际输出为准):
- Reallocated_Sector_Ct(重映射扇区计数):数值持续增大,说明盘面出现坏道,风险高。
- Current_Pending_Sector(待映射扇区):大于 0 就应警惕,可能随时变成坏道。
- Offline_Uncorrectable(离线不可纠正):非零通常意味着读取错误已无法修复。
- Raw_Read_Error_Rate(底层读取错误率):部分厂商是累计值,需结合趋势看,不能只看单次。
- Power_On_Hours(通电时间):超过 3 万小时的老盘建议加强备份频率。
如果 -H 显示 PASSED,但 Reallocated_Sector_Ct 或 Current_Pending_Sector 在增长,仍要按高风险处理。
用自检与日志交叉验证
单看属性不够,建议跑一次短自检,通常几分钟内完成:
smartctl -t short /dev/sda
等待提示的时间结束后,查看结果:
smartctl -l selftest /dev/sda
如果自检失败或出现 read failure,说明盘面已有不可恢复错误。
还可以查看错误日志:
smartctl -l error /dev/sda
日志中若反复出现同一 LBA 地址的读错误,基本可以判定该区域不稳定。
避坑与高频疑问
不要只看健康状态就放心。 PASSED 只代表盘没有触发厂商的故障阈值,不代表没有坏道。
不要忽略数值趋势。 单次查看只能看当前值,建议每周记录一次 Reallocated_Sector_Ct 和 Current_Pending_Sector,对比是否增长。
NVMe 盘命令不同。 对 NVMe 设备应使用 smartctl -a /dev/nvme0n1,
关键项包括 Media and Data Integrity Errors 和 Available Spare,
低于阈值需警惕。
RAID 卡后的硬盘可能读不到。 如果硬盘接在硬件 RAID 卡上,smartctl 可能无法直连。
可尝试加 -d megaraid,N 参数,N 为设备编号,具体以 RAID 卡型号和官方文档为准。
自检会不会影响业务? 短自检通常影响很小,但长自检会占用较多 I/O。
生产环境建议在业务低峰期执行。
结果验证与后续动作
完成检查后,按下面逻辑处理:
-H为FAILED:立即备份数据并安排更换。Reallocated_Sector_Ct或Current_Pending_Sector持续增长:尽快备份,准备替换。- 自检失败或错误日志反复报同一位置:不要继续写入关键数据。
- 所有指标正常但盘龄超过 3 万小时:保持定期备份,缩短检查周期。
验证方法很简单:隔一周再跑一次 smartctl -A /dev/sda,对比关键数值是否变化。
数值稳定且无新增错误,可继续观察;
一旦恶化,优先保数据。
定期查看服务器硬盘SMART信息,是预判硬盘损坏成本最低的手段。
把 smartctl -H 和 smartctl -A 加入例行巡检,比等宕机后再补救更可靠。