当前位置: 首页 > Linux学院 > 系统管理 > 数据备份 > 常用的Linux删除文件恢复工具的使用方法

常用的Linux删除文件恢复工具的使用方法

2013-12-03 17:00 来源:IBM 作者:曹元其 人气指数: 我要评论

然后使用相关工具进行恢复。本文以 Ubuntu 12.04 平台为例介介绍四个(foremost、extundelete、testdisk 和 phtorec)常用的 Linux 删除文件恢复工具的使用方法。

Linux 文件恢复的原理

inode 和 block

首先简单介绍一下 Linux 文件系统的最基本单元:inode。inode 译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是 inode,另一部份是 block,block 是用来存储数据用的。而 inode 呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode 为每个文件进行信息索引,所以就有了 inode 的数值。linux 操作系统下可以使用 ls –id 命令来查看文件或者目录的 inode 值,一般”root”目录的 inode 值为 2,一个分区挂载到一个目录下时,这个”root”目录的 inode 值为 2

# mount /dev/sdb2 /tmp
# ls -id /tmp
2 /tmp

文件恢复的原理

本文要介绍的命令是通过文件系统的 inode 值(一般是 2 )来获取文件系统信息。在 ext3 和 ext4 文件系统中,每个文件都是通过 inode 来描述其数据存放的具体位置,当文件被删除以后,inode 的数据指针部分被清零,文件目录区没有太多变化。文件的读写都是通过 inode 来实现,当 inode 数据指针被清零以后,即便文件内容还在,也没有办法把文件内容组合出来。当 ext3 和 ext4 文件系统中的元数据 metadata 发生变化时,相应的元数据 metadata 在日志文件会有一份拷贝。比如一个文件被删除了,它的 inode 信息会在日志文件中先保存一份,然后把要删除文件 inode 相关信息清零。这个日志文件是循环使用的,当操作过多时,删除的文件的 inode 日志记录会被新的数据替换,这就彻底丧失了根据 inode 找回数据的机会了。如果是大量文件的删除,这个日志文件会被反复循环利用多次,只留给最后删除的那些文件的恢复机会。

使用命令行工具恢复文件

foremost 和 extundelete 简介

formost 是一个基于文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具。这个过程通常叫做数据挖掘(data carvubg)。formost 可以分析由 dd、Safeback、Encase 等生成的镜像文件,也可以直接分析驱动器。文件头和尾可以通过配置文件设置,也可以通过命令行开关使用 formost 内建的文件类型。formost 最初是由美国空军特别调查室(Air Force Office of Special Investigations)和信息系统安全研究中心(The Center for Information Systems Security Studies and Research)开发的,现在使用 GPL 许可。Foremost 支持恢复如下格式:avi, bmp, dll, doc, exe, gif, htm, jar, jpg, mbd, mov, mpg, pdf, png, ppt, rar, rif, sdw, sx, sxc, sxi, sxw, vis, wav, wmv, xls, zip。

针对 Linux 下的 ext 文件系统来说,常用的 Linux 文件删除恢复工具有 debugfs、ext3grep、extundelete 等。extundelete 是一个开源的数据恢复工具,支持 ext3、ext4 文件系统,其官方站点位于http://extundelete.sourceforce.net/,目前最新稳定版本为 0.2.0。

上面介绍的两种命令行工具 foremost 和 extundelete 二者相比,foremost 支持的文件系统比较多(包括 ext2、 ext3 、vfat、NTFS、ufs、jfs 等)和 extundelete 支持的文件系统较少(ext3、ext4)文件系统。不过 foremost 只能支持恢复特定格式的文件。

使用 foremost

首先安装软件包

#apt-get install foremost

其它 Linux 发行版用户可以在 http://foremost.sourceforge.net/ 下载源代码编译安装。下面看看使用方法。

恢复单个类型文件

笔者删除一个 USB(/dev/sdba1)存储器中一个 png 文件然后使用 formost 恢复。

#rm -f /dev/sdb1/photo1.png
#foremost -t png -i /dev/sdb1

恢复完成后会在当前目录建立一个 output 目录,在 output 目录下会建立 png 子目录下会包括所有可以恢复的 png 格式的文件。

需要说明的是 png 子目录下会包括的 png 格式的文件名称已经改变,另外 output 目录下的 audit.txt 文件是恢复文件列表。

恢复多个类型文件

#foremost -v -T -t doc,pdf,jpg,gif -i /dev/sda6 -o /media/disk/Recover

恢复完成后会在当前目录建立一个 output 目录,在 output 目录下会建立四个子目录(/doc,/pdf,/jpg,/gif),分别包括四种类型文件。另外 output 目录下的 audit.txt 文件是恢复文件列表。

使用 extundelete

首先安装软件包

#apt-get install extundelete

其它 Linux 发行版用户可以在http://extundelete.sourceforce.net/下载源代码编译安装。下载安装 extundelete 之前要安装两个软件包 e2fsprogs 和 e2fslibs。下面看看使用方法

模拟数据误删除环境

这里我们使用一个分区/dev/sdd1 挂在在/backupdate 上,建立一个测试目录/delete 并建立一文件:del1.txt 。

# mkdir –p /backupdate/deldate
# mkfs.ext4 /dev/sdd1
# mount /dev/sdd1 /backupdate
#cd /backupdate/deldate
# touch del1.txt
# echo " test 1" > del1.txt
获取文件校验码
# md5sum del1.txt                           
 66fb6627dbaa37721048e4549db3224d  del1.txt

删除文件
# rm -fr /backupdate/*   

卸载文件系统或者挂载为只读
# umount /backupdate
查询恢复数据信息,注意这里的--inode 2 这里会扫描分区 :
# extundelete /dev/sdd1 --inode 2
.....
File name                                       | Inode number | Deleted status
Directory block 8657:
.                                                 2
..                                                2
lost+found                                        11             Deleted
del1.txt                                              12             Deleted

上面标记为 Deleted 是已经删除的文件或目录

开始恢复文件

默认恢复到当前目录下的 RECOVERED_FILES 目录中去。

# extundelete /dev/sdd1 --restore-file del1.txt
如果恢复一个目录
# extundelete /dev/sdd1 --restore-directory /backupdate/deldate
恢复所有文件
# extundelete /dev/sdd1 --restore-all
获取恢复文件校验码,对比检测是否恢复成功
# md5sum RECOVERED_FILES/ del1.txt                         
66fb6627dbaa37721048e4549db3224d  RECOVERED_FILES/del1.txt

查看校验码与之前的是否完全一致。

应用总结:笔者在现实使用过程中发现 extundelete 还是有很大的不完整性,基于整个磁盘的恢复功能较为强大,基于目录和文件的恢复还不够强大。在 Linux 下误删除了文件,当发现数据丢失以后,不要进行任何操作,保留现场。要想办法把数据丢失的文件系统经过 dd 命令或者 AIR(Automated Image Restore,http://cdnetworks-kr-2.dl.sourceforge.net/ )工具到另外的存储空间上作为最原始的备份,以便数据恢复专家现场诊断恢复。

为您推荐: Linux 删除文件 恢复工具
大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

新服 缤纷活动 航海世纪 芈月传 暗黑道具 萌乐网 苹果发布会 最新谍照 三国令 剑雨江湖 怎样修炼战骑 页游 怎样修炼伙伴 木甲世界 仙侠道2 推黑科技 页游模式 武圣试炼场 街机玩法 蓝月传奇 个人BOSS玩法 哥们网 九阴绝学 仗剑出鞘 全新模式 范伟打天下 全新元神玩法 七大神兵简介 新手攻略 跑腿任务 门派五行 城战礼包 页游界 泥石流 傅园慧 经典网页游戏 耐玩 盘点 玉石攻略 提升角色 大黑 实装属性 神兵攻略 问鼎莽荒 莽荒纪 手持神兵 土豪梦 万世 开学清单 财富赚不停 天书世界 大黑游戏 资源战场 ppwan 天问 激战 全国大战 雄霸一方 新增宠物技能 绝对小能手 花千骨 三尾章鱼 风色轨迹 双枪手 弑之神 缤纷好礼 惊喜六重连 帮会 中秋福利 自制月饼 九阴真经 玩家 五周年纪念 纪念银币 名动三界 新服资料片 画江山 勇战妖魔 邪恶势力 上古降魔 老司机玩法 坐骑揭秘 黑科技 竞技场攻略 铁血皇城 披风玩法 书剑恩仇录 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 奇珍商城 热血战歌 传奇宝藏抽奖 打开方式 门徒 门徒获取玩法 三大萌宠简介