查看文件的时候报错input.output error

更新时间:2024-04-14 11:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

问题描述:

在一块有问题的磁盘上面,使用ls 命令的时候,出现的报错信息 Input/output erro 磁盘I/O错误

查看系统日志 tail -f /var/log/messages

原因分析;

1 . 文件系统有问题 2.磁盘损坏,有坏道 查看磁盘状态

[root@158 ~]# cat /sys/block/sda/device/state running

正常查出来的状态应该都是running状态,如果是offline状态的话,即表示磁盘已经离线了

解决方法;

1. 操作之前先使用 dd命令 把 数据拷贝到另外一块好的磁盘上 2. 使用 fsck 命令修复文件系统

fsck详解

Linux命令:fsck

功能说明:检查文件系统并尝试修复错误。

语 法:fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...] 补充说明:当文件系统发生错误时,可用fsck指令尝试加以修复。

参 数:

-a 自动修复文件系统,不询问任何问题。

-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过\ /directoryname\命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。 -N 不执行指令,仅列出实际执行会进行的动作。

-P 当搭配\参数使用时,则会同时检查所有的文件系统。

-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。 -R 当搭配\参数使用时,则会略过/目录的文件系统不予检查。 -s 依序执行检查作业,而非同时执行。 -t<文件系统类型> 指定要检查的文件系统类型。 -T 执行fsck指令时,不显示标题信息。 -V 显示指令执行过程。

运行fsck后,该命令会分6个阶段对文件系统 进行检查,这六个阶段分别是:

阶段1: 检查块和块的大小 阶段2: 检查路径名 阶段3: 检查连接性 阶段4: 检查参考记数 阶段5: 检查自由块列表 阶段6: 补救自由块列表

---- fsck在对每个阶段进行检查时,如果发现错误,会提示用户进行修改,常见的一些错误有: 1) 移去一个没有相关文件的目录入口

---- 这时用户可以回答Yes或Y来删除该目录入口。 ---- 2) 重连接一个已分配但不能访问的文件:

---- fsck找到了一个已分配的I节点,但却不可访问(该节点没与任何目录连接),这时一般对fsck的\?\回答Yes,即把该I节点连接到lost+found目录下,文件名即是I节点号,之后管理员应检查该文件类型,判明该文件用途,再将该文件拷贝到相应目录下。 ---- 3) 连接数调整

---- 在交互方式下,fsck若发现连接数不一致,将询问用户采取何种行动,本例发现一目录的I

节点连接数与该目录的真实连接数不一致。

---- 这时用户应该回答Yes或Y来改正连接数。 ---- 4) 自由块表不一致

---- fsck查出未分配块数与超级块中所给出的自由块表不一致。 ---- 这时用户应该回答Yes或Y来修正超级块。

---- 从上面的出错信息和处理方法可以发现,对于fsck询问的问题大多数情况下都可以用Yes来回答,所以在实际应用时,可以用\选项来执行该命令对硬盘进行检查和修复。

用fsck检查文件系统完整性

文件系统很复杂,因此易于发生错误。可以用fsck 命令检查文件系统是否正确和有效。它可以根据指令修复找到的小错误,并将未修复错误报告用户。幸运的是,文件系统的代码非常有效,所以根本极少出现问题,并且问题通常原因是电源失败、硬件失败、或操作错误,例如没有正常关闭系统。大多数系统设置为启动时自动运行fsck ,因此任何错误将在系统使用前被检测到(并根据希望修正)。使用有错误的文件系统可能使问题变得更坏:如果数据结构有问题,使用这个文件系统可能使之更糟,导致更多的数据丢失。当然,在大的文件系统上运行fsck 会花一定的时间,如果系统正常关闭,几乎从不发生错误,因此有一些方法可以不进行检查。如果文件/etc/fastboot 存在,就不检查。另外,如果ext2文件系统在超级块中有一个特定的标记告知该文件系统在上次mount后没有正常unmount. 如果标记指出unmount正常完成(假设正常unmount指出没问题),e2fsck (fsck 的ext2文件系统版) 就不检查系统。/etc/fastboot 是否影响系统依赖于你的启动手稿,但ext2标记则在你使用e2fsck 时发生作用--基于一个e2fsck 选项(参阅e2fsck 手册页)

自动检查只对启动时自动mount的文件系统发生作用。==>?使用fsck 手工检查其他文件系统,比如软盘。 1、fsck

fsck是可以说是使用次数第一的工具(系统自己使用占90%以上)。它是FS完整性检查,包括supblk,cylgrpblk,inode.tab,data区等。检查的原理是:冗余发。修复时按照实际情况调整记录信息。

lost+found目录:在fsck的时候,将找不到父目录的那些文件拷贝到该目录中,并以i节点号作为文件名。

当系统启动的时候会使用fsck对文件系统进行扫描,并相应的报出扫描结果。例如:/dev/rdsk/c0t0d0s7 stable等。

后面是Fs的状态。其中,clean表示文件系统umount后无人用,stable表示文件系统用过,但却是完整的,好的。而出一大堆的话,还有什么fragment %什么的的那都表示文件系统上有乱的地方,那么就应该进入系统后使用fsck来整理。提起这个来,我想说说在非法关机后(各种原因),再次启动的时候会有很多的情况,上面说的是一种情况,再厉害

一些是系统只能进入但用户状态,最厉害的是连单用户的状态都无法进入(肯定是/和/usr区有问题。这是因为fsck对/区的扫描无法通过的话,系统当然无法启动,而fsck调用的一些函数库又在/usr上。。。。)

当系统的状态是clean,stable和logging的状态的时候(logging??不知道的看上一课吧)fsck不运行。

2、fsck的使用 本课讲的三个参数:

-o f 对系统进行强制检查,不论系统是否在clean等状态 -o p 非交互式检查并修复文件系统,对有的问题则立即退出

-o b=xx 用来修复超级块的错误,就是将备份的超级块内容拷入超级块中。solaris对超级块很重视,它的备份有很多,一般的b=32就可以了,如果不行可以使用命令newfs -N /dev/rdsk/cxtxdxsx来查看超级块的位置,其中任何一个备份块都可使用

3、一些错误的情况 一、RECONNECT

表示目录丢失,可将其存入lost+found中再作转移。回答yes 二、SUPERBLK坏(注意是坏,不是wrong)

修复见上面(如果是wrong就随便了,修不修都可以) 三、CLEAR 删i节点,可能会错 四、REMOVE

删文件,一般给出文件名。file=.... 五、ADJUST

调整连接数。实际数与原记录不符。回答yes 六、SALVAGE ====>? 自由列表计数不正确。回答yes

(题外话:其实我使用一般都是yes过去的,而且书上说不能在正在mount的文件系统上操作,否则有可能导致文件系统损坏。但我也没有碰到过用fsck导致发生错误的情况。不过还是建议大家操作的时候规范一些,否则出错了不要来找我呀。尤其是考试的时候

本文来源:https://www.bwwdw.com/article/g8np.html

Top