转-linux误删文件恢复

转自:同事一篇文章

 

难免有时候会对删除的一些文件有所眷恋,或者脑子里想着别的就rm *了。避免误删文件最有效的方法还是平常养成良好的开发习惯,或者备份代码到svn上。但当遇到问题时,也不要紧张不要慌。

 

(1) 为了方便要下root账户;

(2) Cat /etc/fstab查看目录挂在路径以及文件系统类型:

/dev/sda3               /home       ext2    defaults        0       0

 

(3) Ext2类型,真是太好了,马上现在工具:debugfs

svn co https://svn.xxx.com/inf-test/dc/trunk/tools/debugfs

备注:上面的xxx已隐藏(请自己下载debugfs)

 

(4) debugfs /dev/sda3; // /sda3是你要查看的设备,这种方式将进入debugfs的交互式运行模式

(5) > lsdel //查看被删除文件的inode,你会发现好慢,文件太多了;所以为了方便,将查找结果重定向到文件:

debugfs /dev/sda3 -R lsdel > /home/xxx/lsdel.tmp

 

(6) 好了,你会发现lsdel.tmp有很多行,第一列就是文件名,其实已经变为数字了。没关系,通过grep你删除文件的时间,可以定位你的文件所在的范围,可以减少lsdel.tmp;

 

(7) 一条强大的命令可以将你锁定范围的文件恢复出来了:

awk '{printf "dump <"$1"> /home/xxx/"$1"\n"}' lsdel.tmp | debugfs /dev/sda3

 

Ok,在xxx下面好多以数字命名的文件,每一个继续看吧,可以grep查找内容定位。

posted @ 2012-09-21 16:52  简单-陈勇  阅读(397)  评论(0编辑  收藏  举报