原标题:UNIX操作系统XFS文件系统恢复方法
前两天,恢复了一个XFS文件系统损坏的RAID1。
客户描述:系统重启突然,进入系统发现文件系统无法挂载。使用mount命令提示 mount: wrong fs type, bad option, bad superblock on /dev/sdb1, or too many mounted file systems.
技术积累:
XFS文件系统前面几个扇区分别是
对于扇区开始分别为 XFSB XAGF XAGI ABTB ABTC IABT 然后是 INA。
检测:用winhex查看,发现MBR正常,找到分区起始位置,发现XFSB标记丢失,看内容像是inode节点,估计是文件系统异常造成的数据写入错误,正常的superblock被覆盖。没有superblock当然没法正常挂载了。磁盘63-70扇区数据都不正常。71扇区是ABTB 即 AG Free Space B+trees the block offset B+tree,往下数据正常。所以需要恢复 63-70这几个扇区。还好XFS对这部分数据是有备份信息的,用Winhex 搜索XFSB搜索备份。
处理过程:找到superblock备份,贴回原来位置(63-70扇区)。进入系统挂载(sudo mount /dev/sdb1 /mnt ,发现提示superblock错误。mount: wrong fs type, bad option, bad superblock on /dev/sdb1, or too many mounted file systems. 继续分析,可能是文件系统本身已经存在问题了了,尝试用系统自带文件系统修复工具fsck。全盘备份,用文件系统自检工具,检测并修复(fsck.xfs /dev/sdb1),大概半小时,完成后挂载,成功,基本上全部恢复。
0扇区MBR 显示正常正常 第一个分区
找到63扇区
数据不正确,这里应该是超级块,以 XFSB开头
71扇区
XFS文件系统ABTB结构
ABTB数据正常
8593815扇区找到备份
技术总结:
1、已经接到两个这种情况的单子了,而且都是磁盘空间使用超过95%估计是Linux系统XFS模块有问题,系统使用容量太大时计算有问题,或者是数据回写出错;
2、做好备份工作
3、XFS还需要深入研究
4、fsck有时候是可以用来恢复数据的,不过要备份好。
如有还有疑问的事情请咨询:TEL:13400027332 QQ:1731278955 :http://www.disksos.org/返回搜狐,查看更多
责任编辑: