linux ext3误删除终极解决方案

简介:
[引言]
    EXT3文件系统是目前LINUX平台使用最多的文件系统,原起自EXT2,在其基础上加入日志功能(主要改变),EXT3作为许多LINUX系统默认的文件系统,误操作也在所难免。最常见的,基于LINUX EXT3上误删除操作的数据恢复就非常重要了。加上现在LINUX平台通常不用作娱乐,整体而言,数据较WINDOWS平台重要;同时,基于LINUX平台的数据恢复软件及恢复原理方面的文章都较WINDOWS少得多。鉴于此,写此文章。
[原理]
    EXT3文件系统原理方面的文章很多,同时加上LINUX的开源性及EXT3本身的简洁性,通常了解EXT3文件系统并不是难事。作为误删除,我们需要了解文件的存储结构与删除所做的实际操作。
    EXT3是典型的UNIX类文件系统,首先将整个分区按固定大小的BLOCK分组,再将若干固定数目的BLOCK分组为BLOCK GROUP。这个概念为了描述方便,我们先放一放。再说别的。
    EXT3中的每个文件可以看成由参数+数据组成。比如一个a.tar,其文件包是数据,它的大小、日期、存储位置等。用来区别每个文件的唯一标识是这个文件的"标号"
,可以简单理解:一个EXT3文件系统里有N个文件,其中M号文件大小为XX,日期为XX,数据存储位置为XX,这样就可以通过存储位置得到其数据XXX。这里没有谈到名称,初步可以理解为EXT3的文件系统里没有名称。名称和目录树都是为了更人性化地解读文件系统的一个助记符。没有名称和目录树,EXT3也可以完好地存储文件(可以这样理解),但只能看到一大堆大小不同、只在标号、没有目录层的“散”文件。我们看如何在此基础上加入目录:首先我们将所有目录、文件统统看成文件(其实目录本身和普通数据文件一样,也有属性、大小、内容,只是其内容是为了助记整个文件系统的目录结构的)。目录中可以保存其下文件(包括目录)的标号,以此类推。但只有标号,很难理解文件所代表的内容,所以可以给标号同时绑定一个人性化的名称,即文件名,使文件名与文件标号一一对应。
    每个文件特有的属性通过编好序的INODE进行描述。通常根目录是2号文件,根目录本身存储(可以想像成与普通文件一样的记录)根目录下一级子目录及文件的名称及对应的INODE编号,在遍历文件系统时可以读到文件名称,同时读到其节点号。
    每个块组(前面讲过)分散放置系统中所有的INODE,其存储方式通过其他结构进行描述。系统可以很容易算出第N号节点的存储位置。通过节点就可以找到数据了。
    删除文件的目的是为了释放空间、从索引中去除相应记录。为了实现这样的目的,EXT3文件的删除会做这样的操作,1、重组目录文件的内容(目录文件中的记录),在逻辑上去除被删除文件名称与INODE号的记录;2、更改被删除文件的INODE,至少去除其位置信息(直接与间接BLOCK号);3、在BITMAP区释放原先占用的BLOCK(将原来的使用位更改为空闲,EXT3中即将1更改为0)
    从删除文件的原理来看,即使通过原来目录记录的残留信息可以找到被删除文件的名称,也可以找到其原来的节点号,但因位置信息已被清除,数据还是不能直接恢复。
    数据恢复的方法(待续。。。)。




本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/33799,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
并行计算 Linux 测试技术
GPU实例使用--单实例上运行Linux桌面多开解决方案
客户前期使用的旧异构实例面临更新换代,新的推荐异构实例性能更强,客户的业务软件运行时,GPU使用率不高,需要探索多开方案,提高GPU使用率,提高实例性价比。
|
8月前
|
数据可视化 Linux
Linux centos7.x系统 下没有ens33 网卡的解决方案
此时还没有enp0s31f6网卡相关的配置信息 , 所以我们需要配置enp0s31f6网卡相关的信息
528 0
|
9月前
|
缓存 Linux Windows
Linux环境aspose插件word转pdf中文乱码解决方案
Linux环境aspose插件word转pdf中文乱码解决方案
879 0
|
1月前
|
存储 监控 中间件
Linux双机热备解决方案之Heartbeat
Linux双机热备解决方案之Heartbeat
|
1月前
|
Ubuntu Linux 开发工具
WSL2(3)安装Linux headers完美解决方案
WSL2(3)安装Linux headers完美解决方案
96 0
|
1月前
|
存储 缓存 监控
Linux系统内存下降:原因、诊断与解决方案
Linux系统内存下降:原因、诊断与解决方案
58 0
|
1月前
|
网络协议 安全 Linux
Linux SSH与DNS:从连接问题诊断到专业解决方案
Linux SSH与DNS:从连接问题诊断到专业解决方案
198 1
|
1月前
|
缓存 算法 Linux
深入理解Linux动态库加载:路径、问题与解决方案
深入理解Linux动态库加载:路径、问题与解决方案
501 0
|
1月前
|
Linux 索引
Linux中使用selenium截图的文字变为方框的解决方案
Linux中使用selenium截图的文字变为方框的解决方案
54 1
|
1月前
|
存储 监控 Linux
如何在 Rocky Linux 9 上安装 Sensu 监控解决方案?
如何在 Rocky Linux 9 上安装 Sensu 监控解决方案?
88 0
如何在 Rocky Linux 9 上安装 Sensu 监控解决方案?