首页/系统/Linux 运维命令速查/场景:磁盘错误日志与坏道预警

场景:磁盘错误日志与坏道预警

I/O error、EXT4-fs error、ata bus error…内核与 SMART 的磁盘告警要尽早处理:先隔离数据,再决定修复或换盘。

Linux 运维命令速查系统更新于 2026-10-13

场景与处置原则

磁盘故障最早的信号几乎都在日志里:内核报 I/O error、medium error、sense key、EXT4-fs error,ata 层报 failed command 或 link is slow。处置原则是数据优先——先确认影响范围并把可读数据复制出去,再评估问题出在线缆、背板、控制器还是盘体介质,最后决定修复还是换盘。反复读取同一块坏区会加速恶化,所以取证要一次性做够:日志、SMART、设备序列号、槽位全部留档,而不是原地反复重试。

基本信息

场景日志出现磁盘 I/O 报错或读写异常缓慢
目标评估磁盘健康并优先保住数据
处置链路dmesg 或 journalctl -k 取证 → smartctl 判健康 → 复制数据 → 换盘
关键指标Reallocated_Sector_Ct、Current_Pending_Sector、Offline_Uncorrectable、介质错误计数
风险提示在已有坏道的盘上做 fsck 或重建会加重损坏

典型使用场景

  • 系统整体变慢且 dmesg 持续刷 I/O 错误
  • SMART 巡检发现重分配扇区数增长
  • 数据库或应用报读写错误、事务失败
  • 文件系统意外变成只读,需要判断是否硬件原因
  • 换盘前抢救数据,需要选择安全的复制工具与限速策略

常用示例

常用示例
dmesg -T | grep -i -E 'I/O error|medium error|sense key|failed command' | tail -n 50
journalctl -k --since '3 days ago' | grep -i -E 'error|fail' | tail -n 50
smartctl -H /dev/sda
smartctl -A /dev/sda | grep -E 'Reallocated|Pending|Uncorrectable|Wear'
lsblk -o NAME,SIZE,SERIAL,MODEL,MOUNTPOINT     # 记录序列号与槽位
rsync -aHAX --info=progress2 /data/ /backup/data-$(date +%F)/
ddrescue -n /dev/sdb /dev/sdc rescue.log        # 坏盘优先用 ddrescue

SMART 关键指标读法

指标含义判读
Reallocated_Sector_Ct已重映射的坏扇区数非零且持续增长说明介质在退化
Current_Pending_Sector待重映射的可疑扇区大于 0 表示存在读失败风险的区域
Offline_Uncorrectable离线扫描中不可纠正的扇区非零通常指向盘体本身的问题
Wear_Leveling_CountSSD 的磨损均衡计数接近设计寿命时写入性能与可靠度下降
SMART overall-health厂商给出的综合结论PASSED 不等于没有坏道,必须结合计数趋势
出现 medium error 或 uncorrectable 时以抢救数据为第一优先,不要在问题盘上执行 fsck、mkfs 或重建阵列。先把能读的数据复制到安全位置,再安排换盘。
虚拟磁盘的介质错误由宿主机或云平台处理,客户机内的修复意义有限;保留 dmesg 与 SMART 输出作为凭据,尽快提工单并给数据盘做快照。

易错点

  • 一边报坏道一边对原盘跑 fsck 或重建,可能把仍可读的数据读坏,备份必须在修复之前
  • 只看 SMART 的 PASSED 结论而忽略计数趋势,会漏掉正在恶化的盘
  • 单条 I/O error 就断定硬盘损坏:线缆、背板、HBA 问题同样会出现类似报错,需观察是否集中在同一控制器或槽位
  • 换盘前不记录序列号与插槽位置,事后分不清新旧盘
  • 用 dd 全盘拷贝坏盘会因反复重试拖死 IO,坏盘应使用 ddrescue 并保留日志以便中断后续跑

数据来源与参考

  • smartmontools 文档
  • 内核文档 scsi/ata 错误处理
  • man 8 smartctl

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌