dmesg日志显示磁盘故障如何修复
Linux 磁盘故障定位与修复实操指南

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
服务器突然变慢,或者文件系统莫名其妙变成只读,这背后十有八九是磁盘在“报警”。别慌,跟着下面这套流程走,你就能像老手一样,快速定位问题并采取正确行动。
一、快速定位与判断
第一步,别急着动手,先搞清楚状况。系统内核日志(dmesg)是故障的第一现场,从这里入手最直接。
- 查看内核日志,聚焦 I/O 与设备错误:
- 先看最近的记录:
dmesg | tail -n 100 - 再精准过滤关键词:
dmesg | grep -iE “error|fail|ata|sd|IO|bad” - 这里有几个典型的“危险信号”:出现 Buffer I/O error、I/O error、Unrecovered read error,或者文件系统提示变为只读(比如EXT4-fs报“Couldn‘t remount RDWR … unprocessed orphan inode list”)。这些信息通常指向介质损坏或文件系统出了严重问题。
- 先看最近的记录:
- 检查磁盘健康状态(SMART):
- 安装体检工具:
yum/apt install smartmontools - 快速看结果:
smartctl -H /dev/sda(看整体健康状态) - 看详细报告:
smartctl -a /dev/sda - 报告里要盯紧这几个关键字段:SMART overall-health(PASSED/FAILING)、Reallocated_Sector_Ct(重映射扇区数)、Current_Pending_Sector(待映射扇区数)、UDMA_CRC_Error_Count(CRC错误计数)。如果重映射或待映射扇区数不是0,基本可以确定盘片有物理问题了;而CRC错误计数偏高,则很可能是线缆或接口接触不良。
- 安装体检工具:
- 检查是否只读挂载: 运行
mount | grep ‘ro,’。如果发现根分区都变成只读了,这往往是文件系统检测到致命错误后触发的自我保护机制。 - 实时 I/O 与负载: 执行
iostat -dx 1 5。如果看到 await(等待时间)异常飙升,或者 %util(利用率)长时间接近100%,那磁盘要么是异常了,要么就是遇到了性能瓶颈。
二、常见故障场景与处理
根据上面收集到的线索,基本可以归入下面几种场景。对症下药,效率最高。
| 场景与 dmesg 特征 | 处理要点 |
|---|---|
| 文件系统只读(EXT4-fs 报“Couldn‘t remount RDWR … unprocessed orphan inode list”) | 首要任务是备份关键数据。然后进入救援模式或单用户模式,对问题分区执行 fsck(例如 fsck -y /dev/mapper/vg0-root)。如果修复失败,可以尝试升级 e2fsck 工具版本后再试。修复完成后,再重新正常挂载。 |
| SMART 健康为 FAILING 或 Reallocated/Pending 不为 0 | 这是硬盘的“病危通知书”。立即安排全量备份,并准备更换新硬盘。如果磁盘在RAID阵列里,请严格按照阵列管理流程,将故障盘踢出并更换重建。 |
| 大量 “Buffer I/O error / I/O error / Unrecovered read error” | 同样,先备份数据。然后卸载该磁盘,运行只读坏道扫描定位问题:badblocks -s -v -o bb.log /dev/sdX。如果发现的坏道极少,可能是逻辑错误,可以在确保数据已备份且磁盘离线的前提下,尝试用 badblocks -w 命令重写扇区来修复。否则,一律视为物理坏道,该隔离就隔离,该换盘就换盘。 |
| “UnrecovData 10B8B BadCRC / READ FPDMA QUEUED / hard resetting link” | 这类错误高概率是链路问题,比如SATA线质量差、电源线松动、背板接触不良或控制器兼容性有问题。优先更换一根高质量的SATA线,检查电源接口和主板接口,更新驱动和固件。排除链路问题后,再重新评估硬盘本体的健康状况。 |
| 根分区无法卸载导致无法 fsck | 系统盘正在使用,自然无法修复。这时需要借助救援模式、LiveCD或专用的救援系统启动,在离线环境下对相应的逻辑卷或分区执行 fsck 操作。 |
三、标准修复流程
无论遇到哪种情况,遵循一个清晰的流程能最大程度避免失误和数据损失。
- 保障安全: 动手前,立即对重要数据进行全量备份。最好在离线或只读挂载状态下操作,防止修复过程造成二次破坏。
- 确认对象: 综合利用
dmesg、smartctl、mount、iostat等命令,明确问题到底是文件系统错误,还是磁盘介质/链路故障,并锁定具体的设备或分区(例如/dev/sda、/dev/mapper/vg0-root)。 - 文件系统修复(只读或异常挂载时):
- 首先卸载目标分区(如果是系统盘,需要进入救援/单用户模式)。
- 执行修复:
fsck -y /dev/sdXN;对于ext系列文件系统,也可以用e2fsck。 - 如果工具版本太旧或报错,尝试在救援模式下升级
e2fsck后再重试。
- 介质坏道处理(仅在已备份前提下):
- 只读扫描定位:
badblocks -s -v -o bb.log /dev/sdX - 逻辑坏道尝试重写: 先备份受影响的文件或扇区,然后使用
badblocks -w(注意参数顺序是 END START),修复后再次扫描验证。 - 将坏块加入文件系统坏块表(ext系列):
e2fsck -l bb.log /dev/sdXN - 必须清醒认识到,物理坏道是无法“修复”的,只能通过隔离或更换磁盘来解决。用分区或阵列策略屏蔽坏区只是权宜之计,并非长久之策。
- 只读扫描定位:
- 链路问题排查: 如果日志中间出现 BadCRC、NCQ错误或链路复位,别急着判硬盘死刑。更换SATA线、检查电源和主板接口、排除背板问题往往是更有效的办法。排除后再测试SMART状态。
- 恢复与验证: 所有修复完成后,重新挂载磁盘。在恢复业务前,建议做一次全量校验(比如用
rsync的校验模式,或对比关键文件的校验和)。之后,还需要持续观察一段时间dmesg日志和SMART数据趋势,确保问题真正解决。
四、关键命令速查
为了方便操作,这里把核心命令再整理一遍:
- 日志与状态:
dmesg | tail -n 100;dmesg | grep -iE “error|fail|ata|sd|IO|bad”mount | grep ‘ro,’;iostat -dx 1 5
- 健康检测:
smartctl -H /dev/sda;smartctl -a /dev/sda
- 文件系统修复:
fsck -y /dev/sdXN;e2fsck -y /dev/sdXN
- 坏道检测与处理:
- 只读扫描:
badblocks -s -v -o bb.log /dev/sdX - 写入修复(仅针对逻辑坏道,且必须已备份):
badblocks -s -w /dev/sdX END START - 标记坏块(ext系列):
e2fsck -l bb.log /dev/sdXN
- 只读扫描:
五、风险提示
最后,必须强调几点。数据修复和坏道重写操作本身就有导致数据丢失的风险。因此,“先备份,后操作”是铁律,尽量在离线环境下进行。对于关键业务系统,如果心里没底,建议请专业人员进行现场评估和操作。尤其要记住:当SMART报告显示FAILING,或者出现不可恢复的读错误时,最稳妥的方案是优先更换磁盘,而不是冒险继续修复。硬盘有价,数据无价。
相关攻略
Crontab 任务为何没有按预期执行? 相信不少运维工程师或开发者都遇到过这个头疼的问题:明明设置好的 Crontab 定时任务,到了点却“静悄悄”,完全没有执行。这背后的原因其实挺多,但别担心,排查起来有章可循。下面这几个方向,是经验中最常见的问题点,按顺序检查一遍,多半能定位到症结。 1 确
CentOS 上 LibreOffice 与其他软件冲突的定位与解决 在 CentOS 环境下部署 LibreOffice,有时会遇到一些令人头疼的兼容性问题。别担心,这些问题大多有迹可循,且能通过系统性的排查来解决。下面,我们就来梳理一下常见的冲突类型以及一套行之有效的解决方案。 一、常见冲突类型
在CentOS上进行Python测试,可以遵循以下步骤 安装Python CentOS系统通常会预装Python,不过版本可能不是最新的。要安装或更新Python,最直接的方式就是利用系统自带的包管理器,比如 yum 或 dnf。 sudo yum install python3 当然,如果项目有特
CentOS 上安装 Python 的最佳实践 在CentOS服务器上部署Python环境,选对方法能省去后续无数麻烦。今天,我们就来聊聊如何根据不同的需求,选择最合适的安装路径,并确保环境的稳定与高效。 一 版本选择与总体策略 先说几个核心判断。对于新项目,优先选择仍在积极维护的版本是明智之举。P
在CentOS上安装Python:常见问题与解决之道 在CentOS系统上手动安装Python,尤其是从源码编译时,确实可能遇到一些“拦路虎”。别担心,这些问题大多有迹可循。下面就来梳理一下那些典型的安装失败原因以及对应的解决方案,帮你理清思路。 1 缺少依赖包 这恐怕是最常见的原因了。编译Pyt
热门专题
热门推荐
在CentOS上设置PHP-FPM的日志级别 想在CentOS上调整PHP-FPM的日志级别吗?这通常需要编辑其配置文件。配置文件的位置一般有两个: etc php-fpm d www conf 或者 etc php-fpm conf。下面就来一步步拆解这个设置过程。 首先,打开你的终端。 接下来
币安(Binance)预计在2025年仍是用户最活跃的交易所,凭借其极高的流动性、全面的产品生态和一站式服务保障用户粘性。 对于加密货币投资者而言,选择一个合适的交易平台,往往是成功的第一步。面对市场上琳琅满目的交易所,如何判断哪个更适合自己?今天,我们就来梳理一下预计在2025年用户活跃度最高的几
年会进行到尾声,如何为这场盛宴画上一个圆满的句号,是主持环节的点睛之笔。下面为大家整理了几套适用于2026年企业年会的结束语范文,希望能带来灵感。 2026企业年会主持词结束语范文(一) 【一】 男:欢快的乐曲声中,新一年的画卷正在我们面前徐徐展开。 女:每到辞旧迎新的时刻,总让人感慨万千,思绪如潮
我们的赵老师 她有一双又大又明亮的眼睛。说来也奇,哪怕上课时她背对着我们板书,只要底下有谁做了小动作,她总能立刻察觉——那感觉,就像后背上也长了一双眼睛似的。赵老师的耳朵也灵得很,课堂上任何一点细微的嘀咕声都逃不过去。一旦有人悄悄说话影响了纪律,她滔滔不绝的讲解便会戛然而止。教室瞬间安静下来,那个说
我,一个文静的小姑娘 小小的嘴巴,红红的脸蛋。眼睛不算大,但笑起来会弯成两道月牙儿。额前是整齐的刘海,脑后常扎着个精神十足的马尾辫。 要说这个人嘛,优点固然有一些,缺点也同样明显。其中最突出的一个,大概就是爱哭鼻子了。常常为了一些在旁人看来芝麻绿豆大的小事,我的眼眶就开始发酸,不一会儿,那眼泪便啪嗒





