linux ext3文件误删除恢复思路

2025-04-22 22:11:42

1、[原理] EXT3文件系统原理方面的文章很多,同时加上LINUX的开源性及EXT3本身的简洁性,通常了解EXT3文件系统并不是难事。作为误删除,我们需要了解文件的存储结构与删除所做的实际操作。

2、EXT3是典型的UNIX类文件系统,首先将整个分区按固定大小的BLOCK分组,再将若干固定数目的BLOCK分组为BLOCK GROUP。这个概念为了描述方便,我们先放一放。再说别的。

3、EXT3中的每个文件可以看成由参数+数据组成。比如一个a.tar,其文件包是数据,它的大小、日期、存储醐蛑臀谁位置等。用来区别每个文件的唯一标识是这个文件的"标号",可以简单理解:一个EXT3文件系统里有N个文件,其中M号文件大小为XX,日期为XX,数据存储位置为XX,这样就可以通过存储位置得到其数据XXX。这里没有谈到名称,初步可以理解为EXT3的文件系统里没有名称。名称和目录树都是为了更人性化地解读文件系统的一个助记符。没有名称和目录树,EXT3也可以完好地存储文件(可以这样理解),但只能看到一大堆大小不同、只在标号、没有目录层的“散”文件。我们看如何在此基础上加入目录:首先我们将所有目录、文件统统看成文件(其实目录本身和普通数据文件一样,也有属性、大小、内容,只是其内容是为了助记整个文件系统的目录结构的)。目录中可以保存其下文件(包括目录)的标号,以此类推。但只有标号,很难理解文件所代表的内容,所以可以给标号同时绑定一个人性化的名称,即文件名,使文件名与文件标号一一对应。

4、每个文件特有的属性通过编好序的INODE进行描述。通常根目录是2号文件,根目录本身存储(可以想像成与普通文件一样的记录)根目录下一级子目录及文件的名称及对应的INODE编号,在遍历文件系统时可以读到文件名称,同时读到其节点号。

5、每个块组(前面讲过)分散放置系统中所有的INODE,其存储方式通过其他结构进行描述。系统可以很容易算出第N号节点的存储位置。通过节点就可以找到数据了。

6、删除文件的目的是为了释放空间、从索引中去除相应记录。为了实现这样的目的,EXT3文件的删除会做这样的操作,1、重组目录文件的内容(目录文件中的记录),在逻辑上去除被删除文件名称与INODE号的记录;2、更改被删除文件的INODE,至少去除其位置信息(直接与间接BLOCK号);3、在BITMAP区释放原先占用的BLOCK(将原来的使用位更改为空闲,EXT3中即将1更改为0)

7、从删除文件的原理来看,即使通过原来目录记录的残留信息可以找到被删除文件的名称,也可以找到其原来的节点号,但因位置信息已被清除,数据还是不能直接恢复。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢