您所在的位置:首页 > 成功案例 > Linux数据恢复

深度剖析LINUX EXT4结构

最新动态来源:本站原创点击数:805更新时间:2016/7/6

EXT4Linux kernel  2.6.28 开始正式支持的新的文件系统,目前已经广泛应用在新发行的LINUX版本中。移动终端方面的Android默认系统分区也已成为EXT4。随着LINUX系统的不断更新,相信EXT4将很快替代EXT3,成为下一代LINUX上的标准文件系统。

相比EXT3而言,EXT4最大的改动是文件系统的空间分配模式。默认情况下,EXT4不再使用EXT3block mapping分配方式 ,而改为Extent方式分配。从专业的数据恢复理论看,基于block mappingEXT3在数据删除后就很难恢复,如果基于Extent,可参考的信息就更少,如何有效的恢复EXT4误删除的数据,是个公认的技术难题。

近日,我公司经过不断地尝试和改进,终于完成了对EXT4数据误删除恢复的技术攻关,形成了一套完整的技术解决方案,并成功开发出了基于EXT4的专业数据恢复系统。

下面为北亚数据恢复中心对EXT4误删除数据的恢复方案简介。

1、关于EXT4的结构特征:

EXT4在总体结构上与EXT3相似,大的分配方向都是基于相同大小的块组,每个块组内分配固定数量的INODE,可能的超级块(或备份),及可能的块组描述表。

EXT4INODE 结构做了重大改变,为增加新的信息,大小由EXT3128字节增加到默认的256字节,同时块索引不再使用EXT312直接块+11次间接块+12次间接块+13次间接块的索引模式,而改为4Extent片断流,每个片断流设定片断的起始块号及连续的块数量(有可能直接指向数据区,也有可能指向索引块区)

2EXT4删除数据的结构更改:

EXT4删除数据后,会依次释放文件系统bitmap空间位、更新目录结构、释放inode空间位。而INODE空间的释放不像WINDOWS NTFSFAT一样保留数据的全部或部分索引,一个更彻底的操作是直接清除所有节点中的索引项。

清除了文件的存储索引,意味着即使可以得到文件的名称、日期等元信息,也无法直接知道文件原来存储在什么位置,而基于Extent的存储方式更紧凑,删除之后,很难保证可以很容易还原原先的存储索引。

3、北亚数据恢复中心的算法:

为了重建删除文件的存储索引,需要从多个方向着手,综合分析整个文件系统的存储分配。

A、分清已用空间及未用空间,在自由空间中对所有已知文件类型进行结构汇总,这类汇总包括特定的头结构,特定可串接的文件类型,形成按文件类型分配的虚拟存储表。

B、在自由空间中对所有文件系统元信息进行结构汇总,结合已用空间的分配情况,通过模糊算法,得到原空间分配趋向参考。

C、对日志、临时文件、目录结构的收缩表现进行汇总,得到数据删除时的趋向流程。

D、汇总以上所有信息,虚拟化回溯删除前状态,测试分析结果正确性,如出错,做相应修正后逐步逼近删除前的存储分配。

 

4、恢复方案。

首先对NAS进行完整镜像,然后使用公司自主开发的Frombyte Recovery for Ext4软件进行扫描,扫描过程可以清晰地看到如R-STUDIO一样的分配图。扫描完成后,软件花几分钟的时间进行分析运算,得到了一个空间分配的规律图,被误删除的文件出现几种供参考的分配参与方案。通常默认的方案更符合空间整体分配趋势,依据此导出的文件也几乎全部正确。

目前Frombyte Recovery for Ext4软件已经在内测,后期还需加入授权算法,同时因多数应用环境均比理想环境复杂,突发因素及不确定状况较多,所以软件的算法上也还有很多需改进或增加的地方,预计会在今年年底完善后推出,目前仅提供基于EXT4的数据恢复服务。