如何恢复Linu上删除的文件第1部分

对于很多Linux的用户来说,可能有一个问题一直都非常头疼:对于那些不小心删除的数据来说,怎样才能恢复出来呢?大家知道,在Windows系统上,回收站中保存了最近使用资源管理器时删除的文件。即便是对于那些在命令行中删除的文件来说,也有很多工具(例如recover4all,FinalDataRecovery)可以把这些已经删除的文件恢复出来。在Linux下这一切是否可能呢?实际上,为了方便用户的使用,现在Linux上流行的桌面管理工具(例如gnome和KDE)中都已经集成了回收站的功能。其基本思想是在桌面管理工具中捕获对文件的删除操作,将要删除的文件移动到用户根目录下的.Trash文件夹中,但却并不真正删除该文件。当然,像在Windows上一样,如果用户在删除文件的同时,按下了Shift键并确认删除该文件,那么这个文件就不会被移动到.Trash文件夹中,也就无从恢复了。此时,习惯了使用Windows上各种恢复工具的人就会顿足捶胸,抱怨Linux上工具的缺乏了。但是请稍等一下,难道按照这种方式删除的文件就真的无从恢复了么?或者换一个角度来看,使用rm命令删除的文件是否还有办法能够恢复出来呢?背景知识在开始真正进行实践之前,让我们首先来了解一下在Linux系统中,文件是如何进行存储和定位的,这对于理解如何恢复文件来说非常重要。我们知道,数据最终以数据块的形式保存在磁盘上,而操作系统是通过文件系统来管理这些数据的。ext2/ext3是Linux上应用最为广泛的文件系统,本文将以ext2文件系统为例展开介绍。我们知道,在操作系统中,文件系统是采用一种层次化的形式表示的,通常可以表示成一棵倒置的树。所有的文件和子目录都是通过查找其父目录项来定位的,目录项中通过匹配文件名可以找到对应的索引节点号(inode),通过查找索引节点表(inodetable)就可以找到文件在磁盘上的位置,整个过程如图1所示。图1.文件数据定位过程对于ext2类型的文件系统来说,目录项是使用一个名为ext2_dir_entry_2的结构来表示的,该结构定义如下所示:清单1.ext2_dir_entry_2结构定义structext2_dir_entry_2{__le32inode;/*索引节点号*/__le16rec_len;/*目录项的长度*/__u8name_len;/*文件名长度*/__u8file_type;/*文件类型*/charname[EXT2_NAME_LEN];/*文件名*/};在Unix/Linux系统中,目录只是一种特殊的文件。目录和文件是通过file_type域来区分的,该值为1则表示是普通文件,该值为2则表示是目录。对于每个ext2分区来说,其在物理磁盘上的布局如图2所示:图2.ext2分区的布局从图2中可以看到,对于ext2文件系统来说,磁盘被划分成一个个大小相同的数据块,每个块的大小可以是1024、2048或4096个字节。其中,第一个块称为引导块,一般保留做引导扇区使用,因此ext2文件系统一般都是从第二个块开始的。剩余的块被划分为一个个的块组,ext2文件系统会试图尽量将相同文件的数据块都保存在同一个块组中,并且尽量保证文件在磁盘上的连续性,从而提高文件读写时的性能。至于一个分区中到底有多少个块组,这取决于两个因素:1.分区大小。2.块大小。最终的计算公式如下:分区中的块组数=分区大小/(块大小*8)这是由于在每个块组中使用了一个数据块位图来标识数据块是否空闲,因此每个块组中最多可以有(块大小*8)个块;该值除上分区大小就是分区中总的块组数。每个块组都包含以下内容:1.超级块。存放文件系统超级块的一个拷贝。2.组描述符。该块组的组描述符。3.数据块位图。标识相应的数据块是否空闲。4.索引节点位图。标识相应的索引节点是否空闲。5.索引节点表。存放所有索引节点的数据。6.数据块。该块组中用来保存实际数据的数据块。在每个块组中都保存了超级块的一个拷贝,默认情况下,只有第一个块组中的超级块结构才会被系统内核使用;其他块组中的超级块可以在e2fsck之类的程序对磁盘上的文件系统进行一致性检查使用。在ext2文件系统中,超级块的结构会通过一个名为ext2_super_block的结构进行引用。该结构的一些重要域如下所示:清单2.ext2_super_block结构定义structext2_super_block{__le32s_inodes_count;/*索引节点总数*/__le32s_blocks_count;/*块数,即文件系统以块为单位的大小*/__le32s_r_blocks_c...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?