基于EXT2文件系统的Linux文件恢复.pdf
《基于EXT2文件系统的Linux文件恢复.pdf》由会员分享,可在线阅读,更多相关《基于EXT2文件系统的Linux文件恢复.pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第2 5 卷第5 期2 0 0 4 年l O 月暨南大学学报(自然科学版)J o u r n a lo fJ i n a nU n i v e r s i t y(N a t u r a lS c i e n c e)、,0 1 2 5N o 5O c t 2 0 D 4基于E X T 2 文件系统的L i n u x 文件恢复吉治钢,蔡利栋(暨南大学计算机科学系,广东广州5 1 0 6 3 2)摘要 研究L i n u x 平台下E X T 2 文件系统的文件恢复问题参照E X T 2 文件系统的结构,特别是其最重要的个数据结构e x t 2 一i n o d e,分析了文件删除过程以及相关
2、的L i n u x 源代码,以便发现被删除文件的关键信息分别讨论了根据磁盘现场和根据文件内容来恢复被删除文件的两种方法,实现可采用手工方式或尤为简便的利用软件工具的自动方式【关键词 文件删除与恢复;踟2 文件系统;索引节点;L i n u x 操作系统 中图分类号】T P 3 1 6 文献标识码 A 文章编号 1 0 0 0 9 9 6 5【2 0 0 4)0 5 0 5 4 6 0 6计算机磁盘上的文件往往会由于其使用者的某些误操作或非常事件(如黑客入侵、病毒破坏)等等而被删除,从而导致惨重的损失在D O S W i n d o w s 平台下,文件被删除时,磁盘上仍保存着有关文件的完整信
3、息,包括文件名、文件长度、始簇号(即文件占有的第一个磁盘块号)等重要信息因此,只要被删除文件的数据区还没有被覆盖,就可以通过P C T O O L S 之类的工具软件或其它方法将文件恢复出来【1,2 J 当前,L i n u x 操作系统作为源代码公开的自由软件,正被越来越多的人们所使用J,如何在n u x 平台下恢复被删除文件的问题也逐渐为人们所关注由于E X T 2 文件系统是所有L i n u x发行版本的基本文件系统,所以本文通过对E X T 2 文件系统下的文件删除过程做简要的分析,陈述文件恢复的可能性及其原理,并相应地介绍了具体实现途径1E X T 2 文件系统概述图1 表示了E
4、X T 2 文件系统的物理布局结构,可以看到,它由一个引导块和一系列重复的块组构成从物理上来说,一个块组就是磁盘的一个逻辑分区,它一般具有独立的逻辑文件系统【4 J 每个块组由超块(s u p e rb l o c k)、组描述符(g r o u pd e s c f p t o r s)、块位图引导块I 块组ol 块组|v-1 l 块组|v描述矧块位图嚎引节点位图l 索引节点表l 数据图1E X T 2 文件系统的物理分布(b l o c kb i t m a p)、索引节点位 虱(i n o d eb i t m a p)、索引节点表(i n o d et a b l e)和数据氏_(d
5、a t ab l o c k s)6 部分组成超块和组描述符分别描述了文件系统的基本尺寸、形态和块组的整体信息;数据区是文件系统实际存放数据的磁盘空间;索引节点表是块组中所有节点的i n o d e 结构所组成的阵列(小r a y);块位图记录本组内各个数据块的使用情况,其中每一位(b i t)对应于一个数据块,0 表示空闲,非0 表示已分配;索引节点位图的作用类似于块位图,它记录索引节点表(i n o d et a b l e)中索 收稿日期】2 0 0 3 一1 1 1 1 作者简介】吉治钢(1 9 7 s 一),男,硕士研究生,研究方向:数据恢复、图像处理 万方数据第5 期吉治钢等:基于
6、E X T 2 文件系统的L i n u x 文件恢复5 4 7引节点的使用情况 5,6|2 索引节点e x t 2 一i n o d e 结构概述e x t 2 一i n o d e 结构是E X T 2 文件系统中最基本的数据结构之一,它记录的是文件系统中文件的信息,并与文件具有一一对应关系L 4J,给出如下:s t r u c te x t 2 一i n o d e*文件模式,表示文件类型以及存取权限*_ u 1 6i m o d e;_ u 1 6i u i d;*用户标识号_ u 3 2i s i z e;*文件长度-u 3 2i a t i m e;*访问时间-u 3 2i c t
7、 i m e;*创建时间_ u 3 2i m t i m e;*修改时间_ u 3 2i d t i m e;*删除时间_ u 1 6i g i d;*用户组标识号_ u 1 6i l i n k s c o u n t;*链接(1 i n k)数_ u 3 2i b l o c k s;*块数_ u 3 2i f l a g s;*f i l ef l a g s*数据块指针数组一u 3 2i b 1 0 c k E X 亿一N B L O C K S ;在正常状态下,删除时间(i d t i m e)为0,链接数(i f i n k s c o u n t)为大于0 的整数;当用户执行删除
8、文件的操作时,系统把链接数i l i n k s c o u n t 减1(由于L i n u x 是一个多用户、多进程的操作系统,所以当且仅当i l i n k s c o u n t 减至0 时该文件才会被确实删除,并将当前时间赋给i d t i m e)数据块指针数组实现从逻辑块到物理块的映射关系共有1 5 个指针,前1 2 个指针直接指向物理块,这些物理块直接用于存储数据;后面3 个指针分别是1 级间接指针、2 级间接指针以及3 级间接指针1 级间接指针指向的块中存储的不是数据,而是物理块的地址类似地,2 级间接指针指向的块存储的是一级间接指针,3 级间接指针指向的块存储的是二级间接指
9、针 4,5|3 文件恢复的可能性及其原理根据L i n t=源码(见l i n u x f s、l i n u x f s e x t 2)可知,当文件的链接数为0 时,系统开始清除该文件的索引节点对于E X T 2 文件系统来说,被调用的函数在f s e x t 2 i n o d e e 中,给出如下:v o i de x t 2 一d e l e t e i n o d e(s t m c ti n o d e*i n o d e)*万方数据暨南大学学报(自然科学版)2 0 0 4 妊i f(i s b a d i n o d e(i n o d e)i n o d e-,i i n o
10、=E X 眨一A C L 一皿I X 一V O|Ii n o d e-,i i n o=E X T 2 一A C L D A T A I N 0)g o t o1 1 0 一d e l e t e;修改删除时间i n o d e-u e x t 2 一i i d t i m e=C U R R E N l 一硼:m a r k i n o d e d i r t y(i n o d e);修改链接数e x t 2 一u p d a t e i n o d e(i n o d e,I S S Y N C(i n o d e);i n o d e-i s i z e=0:i f(i n o d e
11、-i b l o c k s)释放占用的数据块e x t 2 一t r u n c a t e(i n o d e);释放索引节点e x t 2 一f r e e i n o d e(m o d e);可见E X T 2 文件系统的删除过程是:先将删除时间(当前时间)和链接数(0)写入索引节点信息中,然后释放文件所占用的数据块(对块位图操作,清除数据块的对应位)和索引节点(对索引节点位图操作,清除索引节点i n o d e 的相应位)值得注意的是,此时系统对于数据块和索引节点都仅仅是“释放”而已,并没有清除数据区中数据块的内容,也没有清除索引节点表(i n o d et a b l e)中的索
12、引节点(甚至还要往索引节点中写入删除的信息)也就是说,到目前为止,文件的数据块本身还没有“真正”丢失:其内容仍然保留在数据区中,索引节点也保留在索引节点表中文件数据块的真正丢失发生在新数据写入的时候此时系统会查找空闲块并分配给新数据使用,而被删除文件所占用的数据块对系统来说已经被标记为“空闲”了,因此,这些数据块很可能就会被系统分配出去这时,数据块中被覆盖部分的旧数据就彻底丢失了因此,要完全恢复被删除的文件,只有当其数据块尚未被新数据覆盖的时候进行才可能成功;否则,就无法完整的恢复出来所以,一旦发现有用文件意外丢失或被误删除,首要的工作是马上防止新数据写入磁盘,比如:将文件所在的分区卸载(u
13、m o u n t)或者将其m o u n t 为只读如:#m o u n t Or e m o u n tr o v a t 4 文件恢复的实现策略在我们要进行文件恢复的时候,磁盘现场(被删除文件所在的磁盘分区)可能已被破坏(发生过写操作),也可能没有因而,恢复也需要根据这两种情况选择不同策略4 1 根据磁盘现场进行恢复的策略在磁盘现场未被破坏的情况下,文件恢复有两种实现方式:第一种是找出文件占用的所有数据块,然后手工从这些数据块中逐个读出数据;第二种是去掉索引节点中关于“文件已被删 万方数据第5 期吉治钢等:基于E X T 2 文件系统的L i n u x 文件恢复5 4 9除”的信息,然
14、后利用系统提供的纠错、修复工具(如e 2 f s e k),将文件自动地恢复出来 7|进行文件恢复需要有r o o t 用户权限步骤如下:(1)搜索被删除文件的索引节点和数据块运行d e b u g f s(几乎所有L i n u x 发行版本都有此工具),用l s d e l 命令#e c h ol s d e ld e b u g f s d e v h d a ll e s s可列出该分区中所有被删除文件的信息如下:d e b u g f s:1 2 5 8 5d e l e t e di n o d e sf o u n d I n o d eO w n e rM o d eS i z
15、 eB l o c k sT i m ed e l e t e d1 7 9 6 0 84 7 2 0 21 0 0 5 5 51 4 71 1S a tJ a n41 5:5 8:1 32 0 0 23 4 0 3 9 64 7 2 0 21 0 0 4 4 44 5 0 82 2S a tJ a n41 5:5 8:2 42 0 0 34 8 4 9 1 44 7 2 0 21 0 0 5 5 51 4 6 71 1S a tJ a n41 5:5 8:2 42 0 0 3一般来说,根据文件大小、删除时问、用户权限等信息,我们就能够判断出被删除文件的索引节点号使用s t a t 命令可得到
16、文件所占用的数据块号,并察看更详细的信息(如创建时间、修改时间、文件类型),例如:#e c h o s t a t Id e b u g s d e v h d a ld e b u g f s:I n o d e:3 4 0 3 4 9T y p e:r e g u l a rM o d e:0 6 4 4H a g s:0 x 0G e n e r a t i o n:2 3 5 4 1 4U s e r:0G r o u p:0S i z e:1 2 6 4 2 0 5F i l eA C L:0D i r e c t o r yA C L:0L i n k s:1B l o c k c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 EXT2 文件系统 Linux 文件 恢复
限制150内