天天看点

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

1.前言

在使用linux系统操作时,如果使用rm等命令将文件误删,不要着急,不要在该目录下创建新的文件,可使用本文介绍的两种方法恢复已删除文件。话不多说,可以使用debugfs和extundelete两种方法恢复。

假设有一文件test.txt被误删,现在分别使用这两种方法恢复文件。

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

2.利用debugfs 文件恢复

此方法在centos上可能不适用,建议使用第二种方法。

首先查看删除文件所在分区,假设在/dev/sda1

df -Th
           

然后打开debugfs进入该分区,并查看所删除的文件

debugfs /dev/sda1
ls -d /root/Desktop
           
linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复
linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

记下删除文件test.txt前面的索引号:<9200411>

查看该索引的详细信息

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

记录下block = 36700424,offset = 3328

输入q退出debugfs。

输入恢复命令

dd if=/dev/sda5 of=/root/Desktop/test.txt bs=3328 count=1 skip=36700424
           

其中bs = offset,skip = block,如此文件已恢复。

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

3.extundelete文件恢复

和debugfs方法一样,可以先查找删除文件的分区,索引。

利用以下任一命令即可恢复

extundelete /dev/sda1 --restore-directory dirname #恢复/dev/sda1分区的dirname文件夹
extundelete /dev/sda1 --restore-files  filename #恢复/dev/sda1分区的filename文件,该文件存在
extundelete /dev/sda1 --restore-file  filename #恢复/dev/sda1分区的filename文件,该文件已删除
extundelete /dev/sda1 --restore-inode  inode1,inode2 #恢复/dev/sda1分区的索引为inode1和inode2的文件
           

恢复后的文件在当前目录下的RECOVERED_FILES文件夹。

比如使用–restore-directory 恢复Desktop文件夹

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

进入到RECOVERED_FILES文件夹会发现text.txt已经恢复好了。

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复

如果采用–restore-inode,恢复出的文件名为file.inode

linux文件误删恢复debugfs和extundelete1.前言2.利用debugfs 文件恢复3.extundelete文件恢复