记一次断电偶然导致Linux磁盘I/O故障无法读写

摘要:
sas_eh_ handle_sas_errors:end_ device-0:sas_ata_ task_ done:err_ mask=0x5)end_ request:sector1950622088 end_ request:JournalhasabortedEXT4 fserror(devicesda1)incex4 _ rename:IOfailureEXT4 fs(sda1):

机房偶然的一次断电中,恢复服务器后出现了 无法读写磁盘。

其他挂载的磁盘均无异常

查询日志得知

[root@huidou03 data]# dmesg|grep error 
[Firmware Warn]: GHES: Poll interval is 0 for generic hardware error source: 1, disabled.
sas: ata1: end_device-0:0: dev error handler
sas: sas_eh_handle_sas_errors: task 0xffff880377ee3840 is aborted
sas: sas_eh_handle_sas_errors: task 0xffff880377ee35c0 is aborted
sas: ata1: end_device-0:0: cmd error handler
sas: ata1: end_device-0:0: dev error handler
sas: sas_ata_task_done: SAS error 8a
ata1.00: failed to IDENTIFY (I/O error, err_mask=0x5)
end_request: I/O error, dev sda, sector 1950622088
end_request: I/O error, dev sda, sector 1950622080
JBD2: I/O error detected when updating journal superblock for sda1-8.
EXT4-fs error (device sda1) in add_dirent_to_buf: Journal has aborted
EXT4-fs error (device sda1) in ext4_rename: Journal has aborted
EXT4-fs (sda1): previous I/O error to superblock detected
EXT4-fs error (device sda1) in ext4_da_writepages: IO failure
EXT4-fs (sda1): previous I/O error to superblock detected
EXT4-fs error (device sda1): ext4_journal_start_sb: Detected aborted journal
JBD2: Detected IO errors while flushing file data on sda1-8
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=23068673, block=92274720
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=33292289, block=133169184
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=83623937, block=334495776
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=105906177, block=423624736
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=94109697, block=376438816
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=87818241, block=351272992
EXT4-fs error (device sda1): __ext4_get_inode_loc: unable to read inode block - inode=20840449, block=83361824

磁盘挂了。。。

我单纯的以为 可能是系统I/O异常 就reboot 重启了。

发现无法进入系统, 又报 BIOS  异常,又报无法找到启动盘

我晕了。

调整思路开始操作

断电,拆机,重置BIOS,插电,开机

一顿猛如虎的操作,结果依旧异常

后断电静置了10分钟

插电,开机,进救援模式

按 ‘e’ 到第二行里 加了 'selinx=0'

重启,终于能进系统了。 

然后就报 UUID:XXXXXX 一堆 error。。。

赶紧把出故障的 磁盘 在  /etc/fstab 里面对应的 UUID 给注释掉, 因为系统启动时会自动 mount UUID 对应的磁盘

因为那个出了故障 所以启动时无限报错,可以 df -h 查询到该磁盘 ,但是无法读取内容

回报故障

ls: cannot access xxx: Input/output error

这时候就要进入 单用户模式 进行修复了

[root@huidou03 data]#init 1 

[root@huidou03 data]# runlevel 
N 1

让他自动修复、

 fsck.ext4 -a  /dev/sda1

[root@huidou03 data]# fsck.ext4 /dev/sda1
xxxxxxx /dev/sda1 clear xxxxx

再将   /etc/fstab 里面对应的 UUID 给注释去掉

reboot 重启

完美搞定!

fsck简介
    fsck不仅可以对文件系统进行扫描,还能修复文件系统的一些问题,要注意:fsck扫描文件系统时一定要在单用户模式下,修复模式下,或者把磁盘umount 后进行。
    警告:如果扫描运行中的系统,会造成系统文件的损坏。
    文件系统扫描工具有很多,其中fsck默认支持文件系统ext2,如果是其他的文件系统就需要fsck.ext3
    最好通过不同的文件系统来调用不同的扫描工具。
    
    必要参数:

-a 非互交模式,自动修复

 -c 检查是否存在有损坏的区块。

 -C<反叙述器> fsck.ext3命令会把全部的执行过程,都交由其逆向叙述,便于监控程序

 -d 详细显示命令执行过程

 -f 强制进行检查

 -F 检查文件系统之前,先清理该保存设备块区内的数据

 -l<损坏区块文件> 把文件中所列出的损坏区块,加入标记

 -L<损坏区块文件> 清除所有损坏标志,重新标记

 -n 非交互模式,把欲检查的文件系统设成只读

 -P<数字>  设置fsck.ext2命令所能处理的inode大小为多少

 -r 交互模式

 -R 忽略目录

 -s 顺序检查

 -S 效果和指定“-s”参数类似

 -t  显示fsck.ext2命令的时序信息。

 -v 显示详细的处理过程

 -y 关闭互动模式


查看当前运行级别:runlevel 切换到单用户模式下:init 1  然后再使用fsck命令修复。

免责声明:文章转载自《记一次断电偶然导致Linux磁盘I/O故障无法读写》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决node.js升级中遇到的问题,提示n: command not foundmysql 服务启动后停止下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

等保测评windows主机加固

控制点 安全要求 要求解读 测评方法 预期结果或主要证据 身份鉴别 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 用户的身份标识和鉴别,就是用户向操作系统以一种安全的方式提交自己的身份证实,然后由操作系统确认用户的身份是否属实的过程,身份标识要求具有唯一性。在用户进入Windows桌面前,如果弹出...

Linux 内存监控

centos6 init进程是系统中的第一个进程,PID永远为1 查看系统在中静态进程的统计信息 命令: ps 格式: ps [可选项] ax: 显示所有的进程信息 -u: 使用以用户为主的格式输出进程信息 -e: select all processes 显示系统内的进程信息 -l: 使用长格式显示进程信息 -f: full 使用完整的格式显示进程信息...

Windows事件ID大全

51 Windows 无法找到网络路径。请确认网络路径正确并且目标计算机不忙或已关闭。如果 Windows 仍然无法找到网络路径,请与网络管理员联系。 52由于网络上有重名,没有连接。请到“控制面板”中的“系统”更改计算机名,然后重试。 53找不到网络路径。 54网络很忙。 55指定的网络资源或设备不再可用。 56已达到网络BIOS命令限制。 57网络适配...

VirtualBox虚拟机安装与上网配置

 一,安装VirtualBox     1.到https://www.virtualbox.org/下载安装包进行安装。 二,安装虚拟机        1.找到系统镜像     2.打开VirtualBox选择新建,创建虚拟硬盘。        3.添加虚拟光驱加载要装系统的镜像。        4.启动虚拟机。        5.完成安装 三,设...

软件设计过程中常用的几种图(一)

我们在软件开发的过程中无论是使用瀑布模式还是敏捷模式开发,都会有软件设计这个阶段,只不过是设计的范围不同而已,下面我就先简单介绍几个常用的图,下面的图有的是我画的,有的是从google来的,希望大家不要介意,本文的目的在于总结设计阶段所需要的图。 1、E-R图--实体联系图 (Entity-Relationship ) E-R图为实体-联系图,提供了表示实...

Grub4dos安装和启动完全指南

GRUB4DOS的启动方式有很多种,介绍如下: 1.从MBR中启动 把GRUB4DOS启动代码安装到MBR后,开机后便能直接进入GRUB4DOS。 安装到MBR需要用到工具bootlace或grubinst, bootlace可运行在DOS,Windows 95/98/Me 和 Linux下,而grubinst可运行在 Windows NT/2000/X...