恢复rm -rf / 删除的文件,不用跑路

恢复rm -rf / 删除的文件

rm -rf / 不用跑路了。

今天失误 本想删除一个包结果使用TAB补齐命令后,手速太快,操作失误 把目录给删除了。

这里在以前有一个debugfs命令 这个命令只在ext2格式上有效,现在都有 ext3  ext4了,就不能用它了。


这种事,我不是第一次遇到了,也没啥大不了的。

先安装extundelete这个工具,官网:http://extundelete.sourceforge.net/


下载到本地后,先安装依懒运行yum install e2fsprogs-devel -y 这个命令会把要用到的依懒都一并安装上。


接下来就是解压extundelete然后进入extundelete编译安装


./configure

make #这里可能会有一个警告出现,不用管它直接运行下一个命令,就安装好了

make install

安装完后可以使用命令 extundelete -v验证是否安装成功,如果显示出版本号则成功。

接下来就是用法了:

先用df -h 查看分区

把要恢复文件的分区找到,比如要恢复/dev/vdb1 分区的删除文件。

省事可以extundelete /dev/vdb1 --inode 2 这样列出删除的文件

或者extundelete /dev/vdb1 --after "1547772799"用这个命令可以列出在1547772799后删除的文件

1547772799这是一个时间戳,用date -d "Fri Jan 18 08:53:19 2019" +%s这个命令可以得到,这个转换时间的格式是不是很复杂,不用担心,你登陆服务器的时候有个提示:Last login: Fri Jan 18 09:02:44 2019 from 0.0.0.0直接就有复制过来就是。


然后恢复文件,恢复的文件默认是存在当前目录下的RECOVERED_FILES目录中,如果没有会自动创建。

extundelete /dev/vdb1 --restore-all #恢复所有删除的文件


extundelete /dev/vdb1 --restore-directory tsre/uu 恢复tsre/uu目录如果是空目录是不能被恢复的, 这个只能恢复uu这个子目录,如果tsre下有其他目录就不会被恢复吧

extundelete /dev/vdb1 --restore-file tsre/uu/abc.log #恢复tsre/uu目录下abc.log文件

extundelete /dev/vdb1 --restore-inode 11927553 #按inode来恢复


最后注意:

在恢复文件的时候一定要卸载分区挂载,否则会报警

The partition should be unmounted to undelete any files without further data loss.

如果你继续操作恢复也可能会失败。

恢复的文件也可以指定保存路径,这个就自己看extundelete 的命令了。


Tags linux

留言(0)

评论