当前位置: 首页 > 原创新闻 > Linux文件恢复工具

Linux文件恢复工具

发表于:2021-04-29 15:26 作者: mtr 阅读数(6048人)

使用系统自带的工具debugfs恢复文件

1、模拟数据误删除环境。

实际实验环境可以使用 /dev/xvdb 磁盘来实验,以下为指导书环境,与实际操作环境略有不同

[root@localhost ~]# mkdir /data/ixdba/

[root@localhost ~]#cd /data

[root@localhost data]# mkfs.ext4 /dev/xvdb //格式为ext4的文件系统,在出现的提示符处输入y

[root@localhost data]# mount /dev/xvdb /ixdba/ //挂载

[root@localhost data]# cp /etc/host* /ixdba/ //往里边放文件

[root@localhost data]# cp /etc/passwd /ixdba/

[root@localhost data]# cd /ixdba/

[root@localhost ixdba]# ls

host.conf hosts hosts.allow hosts.deny lost+found passwd

[root@localhost data]# rm -f passwd //制造删除的动作

2、查看被删除的文件

删除数据之后,首先卸载这块磁盘分区或者挂载为只读,以防止磁盘重新读写。

cd ~

umount /dev/xvdb 或者 mount -r -n -o remount /ixdba/

使用debugfs 打开设备

debugfs -w /dev/xvdb

用ls 加-d参数显示刚刚删除文件所在的目录

显示有<>尖括号的就是我们要找的文件Inode 号

执行logdump -i <inodenumber>

执行完命令后,显示了一屏信息,我们需要的是下面这一行,并且要记住,后面的值

这里未能显示Blocks号码,说明没成功,

如果能看到 blocks号码就可以用如下命令进行恢复

dd if=/dev/xvdb of=/tmp/passwd bs=4096 count=1 skip=blocksnumber

意思就是提取文件到/tmp下面。

既然这种办法我们没成功的话,就试试接下来的办法。

键入 quit 可以退出debugfs环境

实验步骤二

使用extundelete恢复文件

1、查询恢复数据信息

同样我们使用上一步骤的模拟环境

查询恢复数据信息,注意这里的--inode 2 这里会扫描分区 :

# extundelete /dev/xvdb --inode 2

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

开始恢复文件

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

恢复一个文件

# extundelete /dev/xvdb --restore-file passwd

思考一下为什么 恢复passwd没有成功

如果恢复一个目录:

# extundelete /dev/xvdb --restore-directory /directoryname

恢复所有文件:

# extundelete /dev/xvdb --restore-all

既然恢复单独的文件没有成功,我们可以试试恢复所有文件

我们似乎恢复了。接下来用md5sum检验一下

获取恢复文件校验码,对比检测是否恢复成功

恢复成功了。

也许你注意到了,上面的passwd是有两个文件的,因为做了覆盖操作,所以恢复单独的文件并没有成功,这时候我们可以试试恢复全部文件,也许还有一线希望。

实验步骤三

使用photorec恢复文件

1、创建删除环境

# mkfs.ext4 /dev/xvdb //格式为ext4的文件系统,在出现的提示符处输入y

# mount /dev/xvdb /ixdba/ //挂载

# cd /ixdba/

# echo "111111111" >> test.file

# ls

lost+found test.file

# rm -rf *

2、恢复文件

卸载文件系统

# umount /ixdba/

输入photoprec

用方向键选择需要恢复文件的分区,然后 Enter 回车

选择文件系统类型,如果不知道可以选择Unknown

然后回车

底部的选项菜单可以进行一些设置,比如File opt中可以设置指定搜索的文件类型,这里就不详细举例了。可以自己尝试

选 [ext2/ext3] 继续回车:

分析类型我们选择 Whole

选择保存文件的目标目录,然后按 C 确定

这里选择 data好了

按 C 之后就开始了恢复过程

上面的提示告诉我们 4个文件恢复到了 /root/recup_dir开头的目录中。(并没有恢复到我们选择的目录)

选择 Quit, 回车退出

去看一下有没有我们想要的文件

由于photorec 是底层恢复,所以不会是原来的文件名,我们看一下有没有我们想要的文件。所以只能一个个看了~~~~~~

本教程只做简单的演示,具体可以参照:http://lintut.com/photorec-recovery-deleted-files-onrhel-centos-fedora-ubuntu-mint-linux/