基于XFS的NAS数据恢复可以做了

好复杂的文件系统,佩服SGI,位操作让我头晕眼花。
    XFS是一个高效的64位文件系统,由SGI开发,原用在IRIX中,后移植到LINUX上,由于SGI出身于图形多媒体设计,所以其文件系统具在很强的对大量数据的处理能力,在处理大量文件、节点时性能下降很低,完全领先于EXT3,并与REISERFS有的一拼。现在许多基于LINUX和FREEBSD的NAS(由于LINUX/FREEBSD的开源性,实际上非LINUX/FREEBSD的NAS只占很少一部分)选择文件系统时,很有可能会选择XFS。
    XFS文件系统上的数据恢复可麻烦多了。目前市面上没有基于XFS的数据恢复软件,跨平台的XFS读取软件只有XFS32,但功能非常有限,而且只限于目录、节点是正常的情况。据我对其源代码的分析,读取效率也是比较低的。SGI官方对于XFS的详细结构层的描述极少,有的只是FOR LINUX的源代码。这样对于XFS文件系统损坏,使用XFS REPAIR又无法修复的情况,就很麻烦了。
    经过一段时间的研究,总算差不多搞清楚了XFS文件系统的结构层。如果有基于XFS的NAS或LINUX数据出现问题,应该有很大把握了。基于XFS数据恢复的软件已经接近完工。
附部分研究心得:
    XFS INODE number:变长的位数表示,三部分组成:起始块组号+起始块号+块内INODE号。起始块号与块内INODE号的位长由SUPERBLOCK中参数指定。
    XFS EXT number:变长的位数表示,对于32位系统版本,首先用4个4字节表示EXT 编号,EXT编号由两部分组成:起始位置和大小。EXT编号的起始位置为L1(0-32)连接L2(0-32)连接L3(31-21)构成中间值(暂定为TEMP)然后TEMP又由两部分组成:块组号与块组内部块号,结构为后agblklog位表示内部块号,其余高位表示块组号。(张宇旁:如此复杂,怪不得XFS的研究资料怎么少了)
    其他暂未整理。。。。

你可能感兴趣的:(数据恢复,职场,休闲)