红联Linux门户
Linux帮助

ubuntu14.04里sudo rm -rf *执行了恢复数据的方法

发布时间:2017-03-14 11:36:18来源:linux网站作者:韧翎御风
首先提个醒,如果恢复内容较少,还是有可能实现的;若是很多的话,我建议不用报什么期望了,但是也可以试一试。笔者就是很多的情况,结果恢复过来,都是乱码,基本上没有能用。
在执行完作死的命令后,你的/home/下所有的资料应该都没了,重点包括我们常用 的catkin_ws工作空间,笔者的就是这样。下面具体说说方法吧:
 
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目录,里面保存已经恢复的文件。
(2)恢复单个目录mongodb:
$ extundelete  /dev/sda11 --restore-directory  /mongodb
(3)恢复所有误删文件:
$ extundelete  /dev/sda11  --restore-all
extundelete还可以实现恢复某个时间段的数据。可以通过“--after”和“--before”参数实现!
 
6、磁盘挂载
$ mount  /dev/sda11   /home
查看结果
$ df
到此就结束里,如果成功的话,RECOVERED_FILES目录应该有你想要的文件,但是名字可能不对;或者,全是乱码,根本就没用,也不用特别伤心,长一个教训吧,赶紧对rm命令重定向吧,还有设置定时备份!
 
本文永久更新地址:http://www.linuxdiyf.com/linux/29166.html