首先提个醒,如果恢复内容较少,还是有可能实现的;若是很多的话,我建议不用报什么期望了,但是也可以试一试。笔者就是很多的情况,结果恢复过来,都是乱码,基本上没有能用。要说当时的心情,简直就是蛋疼,诶......
在执行完作死的命令后,你的/home/下所有的资料应该都没了,重点包括我们常用 的catkin_ws工作空间,笔者的就是这样。下面具体说说方法吧:
本博客参考网站:http://blog.csdn.net/hnshhslsh/article/details/43460121
http://www.linuxidc.com/Linux/2015-04/116685.htm
http://www.68idc.cn/help/jiabenmake/qita/20150306253306.html
http://www.xue163.com/3078/1/30783843.html
http://jingyan.baidu.com/article/3c48dd3493221de10be35889.html
http://blog.chinaunix.net/uid-25544300-id-3278695.html
1、安装extundelete
$ sudo apt-get install extundelete
2、查看磁盘文件系统,找到被删除文件所在分区
$ df
以笔者情况为例,可以看到/home挂载在/dev/sda11上,记住这个磁盘位置。
在被删除的目录下执行命令,获取Node号
$ cd /home/
$ ls id
同时记住这个node号,我的是1438979,以这个为例
3、卸载磁盘/dev/sda11
(1)普通用户获取ROOT权限
$ sudo passwd root(设置root密码)
$ su
(2)卸载
$ umount /dev/sda11
(3)可能卸载不成功,直接强制卸载
$ umount -l /dev/sda11
4、查看被删除的文件
$ sudo extundelete /dev/sda11 --inode 1438979
根据输出信息,标记为Deleted状态的是已经删除的文件或目录。同时还可以看到已删除文件的inode值,接下来就可以恢复文件了。
5、文件恢复
此处,建议试试单个重要文件恢复,不成功的话或者,然后试试文件夹恢复,笔者直接全部恢复,造成大量乱码,其实更本就没什么用处,而且单个文件恢复也失败了。
(1)恢复单个文件passwd:
$ extundelete /dev/sda11 --restore-file passwd
成功后,会在当前目录下生成一个RECOVERED_FILES目录,里面保存已经恢复的文件。
$ extundelete /dev/sda11 --restore-directory /mongodb
(3)恢复所有误删文件:
$ extundelete /dev/sda11 --restore-all
extundelete还可以实现恢复某个时间段的数据。可以通过“--after”和“--before”参数实现!
$ mount /dev/sda11 /home
查看结果
$ df
到此就结束里,如果成功的话,RECOVERED_FILES目录应该有你想要的文件,但是名字可能不对;或者,全是乱码,根本就没用,也不用特别伤心,长一个教训吧,赶紧对rm命令重定向吧,还有设置定时备份!
参考:rm命令重定向成回收站,让自己有一次悔改的机会===》》http://www.tuicool.com/articles/FNFfUr