linux文件误删恢复debugfs和extundelete

1.前言

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

假设有一文件test.txt被误删,现在分别使用这两种方法恢复文件。linux文件误删恢复debugfs和extundelete_第1张图片

2.利用debugfs 文件恢复

此方法在centos上可能不适用,建议使用第二种方法。
首先查看删除文件所在分区,假设在/dev/sda1

df -Th

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

debugfs /dev/sda1
ls -d /root/Desktop

linux文件误删恢复debugfs和extundelete_第2张图片
在这里插入图片描述
记下删除文件test.txt前面的索引号:<9200411>
查看该索引的详细信息

logdump -i <9200411>

在这里插入图片描述
记录下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和extundelete_第3张图片

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和extundelete_第4张图片
进入到RECOVERED_FILES文件夹会发现text.txt已经恢复好了。
linux文件误删恢复debugfs和extundelete_第5张图片
如果采用–restore-inode,恢复出的文件名为file.inode
在这里插入图片描述

你可能感兴趣的:(嵌入式系统,linux命令)