首页/系统/服务器硬件与 RAID 速查/dmesg 掉盘关键信息解读
硬盘故障与更换68 条

dmesg 掉盘关键信息解读

内核日志中的 ATA/SCSI 报错是盘与链路问题的起始线索:medium error 指向介质,hard reset / link down 指向链路,command timeout 也常见于链路不稳。

dmesg 掉盘信息解读

内核日志里的 ATA/SCSI 报错是盘与链路问题的起始线索:medium error 与 Unrecovered read error 指向介质读取失败,hard resetting link 与 link down 指向链路,command timeout 也常见于链路不稳而不是盘体损坏。读这些日志的价值在于把「卡侧认定故障」和「盘体真的坏了」区分开——两者的处置方式完全不同,前者往往先查线缆、背板与供电。

常用搜索

常用搜索
dmesg -T | grep -i -E "ata[0-9]|medium error|i/o error|link|reset" | tail -40
journalctl -k --since "2 hours ago" | grep -i -E "sd[a-z]|ata" | tail -40
dmesg -T | grep -i -E "medium error|Unrecovered read error" | tail -20
cat /sys/block/sdb/device/state      # 盘当前可见状态(running/offline)

典型报错

报错文本含义排查方向
medium error / Unrecovered read error介质读失败SMART 与坏道检查
hard resetting link链路复位线缆、背板、供电
failed command: READ FPDMA命令失败盘或链路
I/O error, dev sdb块层 IO 失败结合上层状态判断影响
long (xxx) command timeout命令超时链路稳定性或盘固件

按报错分流的处理路径

  • 介质类报错:查 SMART 关键属性与错误日志,判断是否需要换盘
  • 链路类报错:更换线缆与背板插槽,观察是否复发,别急着换盘
  • 命令超时反复出现:核对固件版本与已知问题列表,必要时升固件
  • 报错伴随阵列降级:先按阵列流程恢复冗余,再分析根因

把日志变成结论的四步

  • 截取时间窗口:按故障时间前后各取一段,不要只看文件末尾
  • 分类计数:把报错按介质类、链路类、超时类分别统计,找出主因
  • 交叉验证:与 SMART 属性、卡的物理盘状态、业务监控延迟三条线对照
  • 形成处置:判断是换盘、换线还是升级固件,并记录验证结果
时间戳能对上业务告警才叫证据:用 dmesg -T 让日志显示人类可读时间,再与监控告警、机房变更记录对齐。

易错点

  • 只看末尾几行:故障可能在数小时前就已开始,要按时间窗口过滤而不是只看尾部
  • 把 warning 级日志当故障:结合重试是否实际成功再下结论,避免误判换盘
  • 不做时间线对比:报错时间与业务告警、变更记录没有对齐,只能凭印象判断
  • 忽略盘已离线的事实:日志显示盘已 offline 时,继续在带阵列上做写操作风险很高
  • 把内核日志当唯一证据:还要对照卡的物理盘状态与 SMART 属性,三方一致才能定性
  • 重启后就当问题消失:dmesg 是环形缓冲,重启会清掉历史,先把日志落盘再重启
  • 不留证据就重启:日志未落盘即重启,根因只能靠猜,同类问题会反复出现

数据来源与参考

  • Linux 内核文档(libata 错误消息)
  • man 1 dmesg
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌