使用vim时,很讨厌rm命令的提示,每次删除一个文件时,总是提示是否删除,于是就自动将rm命令转换为rm -fr,这会可没有讨厌的提示了。但是问题出现了,无意间的误操作,写了2天的程序就这样被删除了,痛苦不已。
于是在网上搜索如何恢复文件,虽然最后恢复出来一些重要文件,但是还是一些文件没有恢复出来。赶紧将rm命令改为原来,以免再出错。
想想也是,rm命令本来就应该谨慎使用,我想vim设计者也是这样认为的,所以每次rm时都会提示使用者,哎,误会大师了。
在这里把恢复过程写上,以示警惕自己。
恢复过程其实很简单(针对我自己的情况:vmware6.5 ubuntu 10.04 ext4)
主要参考该仁兄的文章,2011-01-12写的,比我早一天,我真是很幸运啊/(^o^)/~
http://hi.baidu.com/godor9/blog/item/c41f95cd6ed23a1193457e4c.html
1. 看你的文件系统类型,是否为ext4
#parted 接着输入p
Number Start End Size Type File system Flags
1 1049kB 22.6GB 22.6GB primary ext4 boot
2 22.6GB 23.6GB 1020MB extended
5 22.6GB 23.6GB 1020MB logical linux-swap(v1)
2. 如果是ext4,则可以使用extundelete 工具,该工具针对ext3和ext4文件系统
参考:http://extundelete.sourceforge.net/
下载最新版本,./configure --prefix=/var/extundelete; make ; make install
由于担心安装extundelete后会覆盖我删除的文件,所以我安装到/var目录下,configure时出现了一个错误:Can't find ext2fs library,解决方法:sudo apt-get install e2fslibs-dev e2fslibs-dev,然后make,make install即可
3. 生产可执行文件extundelete后,使用它来恢复删除的文件:
#./extundelete /dev/sda1 --restore-all
需要一段时间,把以前删除的文件只要能恢复的全恢复出来,执行完毕后在当前目录生产一个RECOVERED_FILES目录,里面即是恢复出来的文件,还包括文件夹哦/(^o^)/~,很方便查找。如果你还记得删除文件中一些内容,直接grep就可以了,很快能找到删除的文件,如果找到的Binary file,那只能杯具了。
注意:在参考那位仁兄的文章时,并没有进入单用户模式,安装完extundelete后直接运行恢复;也没有umount /home; 提示umount: /home: not mounted。