您的位置:首页 > 大数据 > 人工智能

mount of filesystem failed

2012-03-11 10:19 190 查看
原文地址:http://blog.csdn.net/kankan_summer/article/details/6026539

Problem:

mount of filesystem failed

a maintenance shell will now be started.

Control-D will terminate this shell and re-try

root@kubuntu:~#




its ridiculous, this just happened randomly

Resolution:

run this command

"fsck -f" then hit "Y" for all the errors it prompted me with.

that will fix all problems, as of right now.

Use caution because i cant guarantee that this will fit for everyone.






fsck 详解
Linux命令:fsck

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

语 法:fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...]

补充说明:当文件系统发生错误时,可用fsck指令尝试加以修复。

参 数:

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

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

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /director yname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount 的等命令都利用该程序。

-N 不执行指令,仅列出实际执行会进行的动作。

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

-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。

-R 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查。

-s 依序执行检查作业,而非同时执行。

-t<文件系统类型> 指定要检查的文件系统类型。

-T 执行fsck指令时,不显示标题信息。

-V 显示指令执行过程。

运行fsck后,该命令会分6个阶段对文件系统

进行检查,这六个阶段分别是:

阶段1: 检查块和块的大小

阶段2: 检查路径名

阶段3: 检查连接性

阶段4: 检查参考记数

阶段5: 检查自由块列表

阶段6: 补救自由块列表

fsck在对每个阶段进行检查时,如果发现错误,会提示用户进行修改,常见的一些错误有:

1) 移去一个没有相关文件的目录入口

这时用户可以回答Yes或Y来删除该目录入口。

2) 重连接一个已分配但不能访问的文件:

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

3) 连接数调整

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

这时用户应该回答Yes或Y来改正连接数。

4) 自由块表不一致

fsck查出未分配块数与超级块中所给出的自由块表不一致。

这时用户应该回答Yes或Y来修正超级块。

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

用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和log ging的状态的时候(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导致发生错误的情况。不过还是建议大家操作的时候规范一些,否则出错了不要来找我呀。尤其是考试的时候)

FSCK数据出错的灾难应急方案 介绍

1、文件系统:ext2 ext3 reiserfs xfs等

2、范围:提示文件系统需要FSCK时,未执行或FSCK执行完成

[症状]

1、无法MOUNT分区;

2、大量文件、目录丢失,根目录下生成/LOST+FOUND文件夹,里面有大量#XXXXXX类的文件和目录;

3、FSCK很快报错完成;

4、FSCK执行时,有大量提示,如修改节点、清0节点等操作

[应急方案]

1、如遇提示FSCK时,请小心。如果可能,请尽快断开系统,UMOUNT所有分区。

2、必需执行FSCK时,先做准备工作,方法一:可事先用dd命令将所涉及到的分区输出到另外的存储 体上(最好不要在出错的存储体本身上做dd) 命令大致结构可如: dd if=/dev/sda0 of=/dev/sdb0 …..

3、必需执行FSCK时,先做准备工作,方法二:将整个LINUX存储体挂载到虚拟机环境,将LINUX存储体设为Nonpersisten模式,再执行,执行过后,如果数据完好,应尽快通过FTP等方式拷贝出来。

4、必需执行FSCK时,先做准备工作,方法三:将整个LINUX存储体挂载到其他系统上(如WINDOWS),做好镜像后再做FSCK。

5、如上面几种方式均因条件等原因无法实施,必须执行时,可小心观察FSCK的执行提示(关掉-a)如果发现有提示节点错误需更正或清0、节点描述文件大小不正确等信息,应停止执行FSCK。

6、因恢复 需要参考很多信息,因尽可能保持系统不工作状态,至少不得再次MOUNT分区(即便不做任何读写操作,也会因系统的工作原理不断降低数据恢复的可能性,增加数据恢复的难度)

7、寻求专业数据恢复公司帮助。

对磁盘进行镜像的方案:

1、可用相同或大于源盘容量的硬盘做为目标盘,将源盘全部扇区方式CLONE到目标盘。

2、可将源盘完全以扇区方式输出文件到某大容量存储空间(如大容量硬盘、NAS、SAN、DAS等)

输入Root密码 登录后采用:fsck -t ext3 -r /usr/local 修复

fsck的命令的几个使用方法

指令:fsck

使用权限 : 超级使用者

使用方式 : fsck [-sACVRP] [-t fstype] [–] [fsck-options] filesys […]

说明 : 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统

参数 :

filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)

-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数

-s : 依序一个一个地执行 fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的 partition 做检查

-C : 显示完整的检查进度

-d : 列印 e2fsck 的 debug 结果

-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行

-R : 同时有 -A 条件时,省略 / 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

例子 :

检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :fsck -t msdos -a /dev/hda5

注意 :

此指令可与 /etc/fstab 相互参考操作来加以了解。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: