fsck修复以及在lost+found找丢失的文件
转自:http://www.aslibra.com/blog/post/lost_found_fsck_find.php
linux的每个分区默认都有一个 lost+found 目录,是用来存放fsck过程中部分修复的文件的。
近日一块硬盘发生错误:
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted
EXT3-fs error (device sdb1) in start_transaction: Journal has aborted
会提示硬盘有问题,估计硬盘快不行了咯 (⊙o⊙)
重启的时候还需要键盘按any key继续,这硬盘有问题啦,可怜的
在远程重启一直都没有启动好,原来真的是需要确认才能继续。。
在rw模式下操作,文件系统会在某个时候自动切换至read-only模式,不知道啥问题,出现IO错误多了就会这样?
umount后可以进行fsck:
如果没有umount,肯定是比较危险的事情,可能会导致现在被读取或者打开的文件都会丢到lost-found里面,到时候有你找的了,是不是这样我也不太肯定。
我胆敢尝试了一下在挂载为只读的时候fsck,发现lost-found里面的文件很多是samba共享的文件,不知道是否这个原因,但是要知道linux启动的时候也是挂载根分区为只读查盘的,而后在remount为rw。
翻开红帽系统管理的书找到依据,表明可以不umount而修复:
一个只读的挂载的文件系统可用fsck命令进行操作,并被修复。
fsck.ext3: invalid option -- h
Usage: fsck.ext3 [-panyrcdfvstDFSV] [-b superblock] [-B blocksize]
[-I inode_buffer_blocks] [-P process_inode_size]
[-l|-L bad_blocks_file] [-C fd] [-j ext-journal]
[-E extended-options] device
Emergency help:
-p Automatic repair (no questions)
-n Make no changes to the filesystem
-y Assume "yes" to all questions
-c Check for bad blocks and add them to the badblock list
-f Force checking even if filesystem is marked clean
-v Be verbose
-b superblock Use alternative superblock
-B blocksize Force blocksize when looking for superblock
-j external-journal Set location of the external journal
-l bad_blocks_file Add to badblocks list
-L bad_blocks_file Set badblocks list
对照一下中文注释:
fsck (-F fstype) (-v) (-m) (-special…)
fsck (-F fstype) (-v) (-y|Y|n|N)
(-o fstype options) (special…)
其中:
-F fstype : 说明被检查的文件系统的类型
-v : 返回完成的命令行,但不运行
-y|Y: 对所有问题均回答Yes
-n|N: 对所有问题均回答No
-m: 对文件系统进行检查,不修复文件系统,
如果文件系统经检查后是可安装的,则显示
ufs fsck : sanity check : /dev/rdsk/c0t0d0s0 okay.
-o: 文件系统类型选项,选项由逗号分隔,
最常用的选项有两个:
P: 整理(preen)模式
F: 强制检查模式,此选项忽略文件系统状态标志。
1) 移去一个没有相关文件的目录入口 答Yes或Y来删除该目录入口
2) 重连接一个已分配但不能访问的文件
对fsck的"RECONNECT?"回答Yes,即把该I节点连接到lost+found目录下,文件名即是I节点号
3) 连接数调整 回答Yes或Y来改正连接数
4) 自由块表不一致 回答Yes或Y来修正超级块
对于fsck询问的问题大多数情况下都可以用Yes来回答,所以在实际应用时,可以用" -y"选项来执行该命令
对硬盘进行检查和修复。
可以使用 -y 参数让它碰到需要修正的时候自动确认修复: fsck.ext3 -y /dev/sdb1
之后也许会在 lost+found 有很多文件:
#11042820
#11108357
#11223043
#11386881
#11403265
按节点命名的吧?不清楚细节,打开文件夹可以看到里面的文件,认识的就可以复制恢复,不认识的就没法了,根据文件名称找吧:
./#1638402/www.aslibra.com.rar
./#1638402/Zmaker_1.093.rar
./#1638402/安装包测试/08-12-05.rar
附上fsck参考资料:
运行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”选项来执行该命令对硬盘进行检查和修复。
原创内容如转载请注明:来自 阿权的书房
更多推荐
所有评论(0)