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

深度剖析LINUX EXT4结构
点击数:更新时间:2018-07-18 14:43:22
EXT4是Linux kernel 自 2.6.28 开始正式支持的新的文件系统,目前已经广泛应用在新发行的LINUX版本中。移动终端方面的Android默认系统分区也已成为EXT4。随着LINUX系统的不断更新,相信EXT4将很快替代EXT3,成为下一代LINUX上的标准文件系统。
相比EXT3而言,EXT4的改动是文件系统的空间分配模式。默认情况下,EXT4不再使用EXT3的block mapping分配方式 ,而改为Extent方式分配。从专业的数据恢复理论看,基于block mapping的EXT3在数据删除后就很难恢复,如果基于Extent,可参考的信息就更少,如何有效的恢复EXT4误删除的数据,是个公认的技术难题。
近日,我公司经过不断地尝试和改进,终于完成了对EXT4数据误删除恢复的技术攻关,形成了一套完整的技术解决方案。
下面为数据恢复中心对EXT4误删除数据的恢复方案简介。
1、关于EXT4的结构特征:
EXT4在总体结构上与EXT3相似,大的分配方向都是基于相同大小的块组,每个块组内分配固定数量的INODE,可能的超级块(或备份),及可能的块组描述表。
EXT4的INODE 结构做了重大改变,为增加新的信息,大小由EXT3的128字节增加到默认的256字节,同时块索引不再使用EXT3的12直接块+1个1次间接块+1个2次间接块+1个3次间接块的索引模式,而改为4个Extent片断流,每个片断流设定片断的起始块号及连续的块数量(有可能直接指向数据区,也有可能指向索引块区)。
2、EXT4删除数据的结构更改:
EXT4删除数据后,会依次释放文件系统bitmap空间位、更新目录结构、释放inode空间位。而INODE空间的释放不像WINDOWS NTFS或FAT一样保留数据的全部或部分索引,一个更彻底的操作是直接清除所有节点中的索引项。
清除了文件的存储索引,意味着即使可以得到文件的名称、日期等元信息,也无法直接知道文件原来存储在什么位置,而基于Extent的存储方式更紧凑,删除之后,很难保证可以很容易还原原先的存储索引。
3、大众科技数据恢复中心的算法:
为了重建删除文件的存储索引,需要从多个方向着手,综合分析整个文件系统的存储分配。
A、分清已用空间及未用空间,在自由空间中对所有已知文件类型进行结构汇总,这类汇总包括特定的头结构,特定可串接的文件类型,形成按文件类型分配的虚拟存储表。
B、在自由空间中对所有文件系统元信息进行结构汇总,结合已用空间的分配情况,通过模糊算法,得到原空间分配趋向参考。
C、对日志、临时文件、目录结构的收缩表现进行汇总,得到数据删除时的趋向流程。
D、汇总以上所有信息,虚拟化回溯删除前状态,测试分析结果正确性,如出错,做相应修正后逐步逼近删除前的存储分配。

4、恢复方案。
首先对NAS进行完整镜像,然后使用Ext4软件进行扫描,扫描过程可以清晰地看到如R-STUDIO一样的分配图。扫描完成后,软件花几分钟的时间进行分析运算,得到了一个空间分配的规律图,被误删除的文件出现几种供参考的分配参与方案。通常默认的方案更符合空间整体分配趋势,依据此导出的文件也几乎全部正确。
目前Ext4软件已经在内测,后期还需加入授权算法,同时因多数应用环境均比理想环境复杂,突发因素及不确定状况较多,所以软件的算法上也还有很多需改进或增加的地方