Linux主机因经常非正常关机、突然断电、设备数据读写异常等原因导致文件系统的破坏,比较常见的是超级块(super-block)损坏,超级块是文件系统的核心档案,记录了该文件系统的类型、大小、空闲磁盘块等信息。
当文件系统超级块损坏时,Linux系统将无法识别该文件系统,也就无法挂载使用
当通过 /etc/fstab 配置文件自动加载的文件系统出现错误时,Linux系统会开机自检,并提示用户进行文件系统的修复操作
当/dev/sdb1 分区的超级块出现错误时,启动后系统将提示“ Give root password for maintenance ”
输入root用户密码,进入临时shell环境
# fsck -yt ext3 /dev/sdb1
# exit
-t 指定文件系统
-y 对发现的问题自动回答yes
模拟出对 /dev/sdb7 文件系统数据的破坏
# dd if=/dev/zero of=/dev/sdb7 bs=512 count=1
;=============================================================================
检查ext2文件系统的正确性命令详解:e2fsck
本文出自: (2001-05-23 09:26:25)
功能说明:检查ext2文件系统的正确性。
语 法:e2fsck [-acCdfFnprsStvVy][-b ][-B ][-l ]
[-L ][设备名称]
补充说明:e2fsck执行后的传回值及代表意义如下:
0 没有任何错误发生。
1 文件系统发生错误,并且已经修正。
2 文件系统发生错误,并且已经修正。
4 文件系统发生错误,但没有修正。
8 运作时发生错误。
16 使用的语法发生错误。
128 共享的函数库发生错误。
参 数:-a 不询问使用者意见,便自动修复文件系统
-b 指定superblock,而不使用预设的superblock
-B 指定区块的大小,单位为字节
-c 一并执行badblocks,以标示损坏的区块
-C 将检查过程的信息完整记录在file descriptor中,使得整个检查
过程都能完整监控
-d 显示排错信息
-f 即使文件系统没有错误迹象,仍强制地检查正确性
-F 执行前先清除设备的缓冲区
-l 将文件中指定的区块加到损坏区块列表
-L 先清除损坏区块列表,再将文件中指定的区块加到损坏区块
列表。因此损坏区块列表的区块跟文件中指定的区块是一样的
-n 以只读模式开启文件系统,并采取非互动方式执行,所有的问题对
话均设置以"no"回答
-p 不询问使用者意见,便自动修复文件系统
-r 此参数只为了兼容性而存在,并无实际作用
-s 如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何
动作
-S 不管文件系统的字节顺序,一律交换字节顺序
-t 显示时间信息
-v 执行时显示详细的信息
-V 显示版本信息
-y 采取非互动方式执行,所有的问题均设置以"yes"回答。