一、安装extundelete

yum -y install epel-release  #安装epel第三方源
yum -y install extundelete

二、开始恢复

假设我需要恢复的文件或目录为/opt/module/anaconda3

1.查看我们主分区挂载的路径:

df -lh
如图, /dev/vda1是主分区路径
在这里插入图片描述

2.找到被删除的文件:

extundelete /dev/vda1 --inode 2
有提示按Y即可。

如图我们看到opt目录的编号为 1179651:

image.png

接下来进入 opt目录:

extundelete /dev/vda1 --inode 1179651
在这里插入图片描述

同理,再进入module文件夹下
extundelete /dev/vda1 --inode 1179658

如图我们看到了ananconda3这个文件夹,编号是1183645,状态是Deleted
在这里插入图片描述

3.恢复文件/文件夹

extundelete /dev/vda1 --restore-directory /opt/module/anaconda3
后面的路径就是原来被删掉文件的路径。

过一会儿就会完成恢复文件。因为磁盘数据一直在读写,所以有些文件之前的 inode 已经被重新分配了,导致部分数据无法恢复,数据最后会告诉我们有多少文件没有恢复,但是大部分数据还是可以恢复的。

完成后会在当前目录生成一个目录 RECOVERED_FILES 里面就是我们恢复的数据。

4.其他

要恢复全部文件可以使用如下命令:

extundelete /dev/sda5 --restore-all

命令参考如下: extundelete –help

其中,参数(options)有:
--version, -[vV],显示软件版本号。
--help,显示软件帮助信息。
--superblock,显示超级块信息。
--journal,显示日志信息。
--after dtime,时间参数,表示在某段时间之后被删的文件或目录。
--before dtime,时间参数,表示在某段时间之前被删的文件或目录。
动作(action)有:
--inode ino,显示节点“ino”的信息。
--block blk,显示数据块“blk”的信息。
--restore-inode ino[,ino,...],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。
--restore-file 'path',恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中。
--restore-files 'path',恢复命令参数,表示将恢复在路径中已列出的所有文件。
--restore-all,恢复命令参数,表示将尝试恢复所有目录和文件。
-j journal,表示从已经命名的文件中读取扩展日志。
-b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。
-B blocksize,通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐