使用ext3grep恢复ext3文件系统中误删除文件
          
          
         
 
         
 
         
          作者:ubuntu中文论坛的 jkll(就是我啦)
          
原文链接
           
         
严重提示:请非常谨慎执行本文操作,操作前备份有用重要文件,出现问题请快回帖或向版主举报,以警示后人,切记切记。
         
         
          最近老误删一些有用的文件(手贱),心里郁闷阿那个。于是痛下决心要学习文件恢复。上论坛找到一篇名为《[原创]学会恢复Linux系统里被删除的 Ext3文件 
         
         
http://www.sjvj.com
         》
         
http://forum.ubuntu.org.cn/viewtopic.php?f=42&t=128676的文章详细说明了方法。但是据回复贴子看,此方法不行,再百度 谷哥一下午,发现网上有很多人也在介绍这个方法。例如
         
http://linux.chinaunix.net/techdoc/system/2007/11/15/972367.shtml[url][/url]和
         
http://blog.163.com/qqbxclboy@126/blog/static/289027822007872350729/
         方法都是同一个。但我试过,都是不行的。也许真的像一篇文章里说的:大家是以讹传讹,把ext2的恢复方法当成ext3的恢复方法,虽然ext,ext3基本相同,但反正上面的方法都是恢复不了我的误删ext3数据。
         
         
 难道就这样放弃了吗,我不想,于是又开始新一轮的google,《谁说误删Ext3下的文件一定找不回》出自
         
http://www.linuxdiyf.com/viewarticle.php?id=74382让我有点希望,不过他是来恢复纯Ascll文件的。不过让我看到了希望。
         
         
         
 终于,我找到了文献1:《ext3 文件系统上恢复误删除文件》
         
http://webwhere.cn/2008/7/6/recover-deleted-files-on-an-ext3-file-system他介绍了ext3grep这个恢复工具,正是今天我要郑重向大家推荐的主角。如果你以了解ext3grep,(下面的内容就当我是从火星来的怪物说的)。
         
 本文参考文献还有文献2:《linux系统恢复删除文件》
         
http://hi.baidu.com/wangtao8899/blog/item/cda6f2d923c8dbec38012f2d.html
         
          要看ext3grep恢复文件的原理或下载源代码,请到(英文的)
         
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html我就略过了哈
         
         
         
上面两篇文章都是在redhat环境下的,经过本人实践在ubuntu下修改一下命令格式,完全能恢复ubuntu下ext3文件系统误删文件。
         =============================================
         
         
方法如下
         
         
         一。
         预备。(请先看注)
         
据文献2,要装一个e2fsprogs才能安装ext3grep恢复软件
         
代码: 
         
          代码:
         
 
         
          apt-get install e2fsprogs
         
 
         (注:不装应该也没事,好像是编译库什么的,反正我根据他还是编译不成功,本文介绍用deb直接装的)
         
         
         
         
二。
         安装
         安装我们今天的主角:ext3grep,我下载官方源代码编译不成功(菜鸟),所以向大家介绍另一种方法,下载deb文件直接装。
         
下载地址: 
         
          引用:
         
 
          
         (幸好ubuntu源自deban,我们有很多东西都可从他那里下)
         
双击安装就好了
         
         
         
         
三。
         恢复误删文件
         我这里演示一下:首先我的分区如下(虚拟机哈)(用 
         
          代码:
         
 
         
          df -h
         
 查看)
         
Filesystem Size Used Avail Use% Mounted on
         
/dev/sda6 1.9G 477M 1.3G 27% /
         
varrun 130M 104K 130M 1% /var/run
         
varlock 130M 0 130M 0% /var/lock
         
udev 130M 80K 130M 1% /dev
         
devshm 130M 12K 130M 1% /dev/shm
         
lrm 130M 38M 92M 30% /lib/modules/2.6.24-19-generic/volatile
         
/dev/sda1 76M 17M 56M 23% /boot
         
/dev/sda3 950M 30M 873M 4% /home
         
/dev/sda5 3.7G 1.6G 2.0G 46% /usr
         
         
/dev/sda7 183M 5.6M 168M 4% /vext3 这就是我误删文件的分区了
         
/dev/sda8 265M 13K 251M 1% /wext2
         
/dev/sda9 95M 33M 62M 35% /xreiserfs
         
/dev/sda10 93M 144K 93M 1% /yjfs
         
/dev/sda12 109M 1.0K 109M 1% /zfat32
         
/dev/sda11 184M 4.3M 180M 3% /zxfs
         
         
         
我误删文件的分区是在/wext3,也就是/dev/sda7,文件格式当然是ext3了,系统当然是ubuntu(都是废话)
         
         
         现在真的开始恢复
         
         
         
         
         1.
         卸载误删文件的分区(这点很重要)
         代码: 
         
          代码:
         
 
         
          umount /vext3
         
 
         注:如果被删除的文件在/或者其他系统分区,那就只能拆下盘挂到其他机子弄,或者livecd下弄吧?(livecd下可以装软件的说),不太清楚,找别的方法去把,不要再看下去了 
         
 
         
         
         
         
         2.
         查看被删除的文件
         代码: 
         
          代码:
         
 
         
          ext3grep /dev/sda7 --ls --inode 2
         
 
         会出来下面一段
         
         
Running ext3grep version 0.9.0
         
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
         
Number of groups: 24
         
Loading group metadata... done
         
Minimum / maximum journal block: 526 / 4640
         
Loading journal descriptors... sorting... done
         
The oldest inode block that is still in the journal, appears to be from 1224513073 = Mon Oct 20 22:31:13 2008
         
Number of descriptors in journal: 28; min / max sequence numbers: 8 / 13
         
Inode is Allocated
         
Loading sda7.ext3grep.stage2... done
         
The first block of the directory is 512.
         
Inode 2 is directory "".
         
Directory block 512:
         
 .-- File type in dir_entry (r=regular file, d=directory, l=symlink)
         
 | .-- D: Deleted ; R: Reallocated
         
Indx Next | Inode | Deletion time Mode File name
         
==========+==========+----------------data-from-inode------+-----------+=========
         
 0 1 d 2 drwxr-xr-x .
         
 1 2 d 2 drwxr-xr-x ..
         
 2 end d 11 drwx------ lost+found
         
 3 4 r 12 D 1224546806 Tue Oct 21 07:53:26 2008 rrw-r--r-- aaa
         
 4 5 r 13 D 1224546806 Tue Oct 21 07:53:26 2008 rrw-r--r-- aaa (3rd copy)
         
 5 6 r 14 D 1224546806 Tue Oct 21 07:53:26 2008 rrw-r--r-- aaa (4th copy)
         
 6 7 r 15 D 1224546806 Tue Oct 21 07:53:26 2008 rrw-r--r-- aaa (another copy)
         
 7 8 r 16 D 1224546806 Tue Oct 21 07:53:26 2008 rrw-r--r-- aaa (copy)
         
 8 end r 17 D 1224546806 Tue Oct 21 07:53:26 2008 rrw-r--r-- aaa~
         
         
注意:最后的几行就是我误删除的文件了,名字分别为aaa,aaa (3rd copy),aaa (4rd copy).........
         
         
         
         
3.
         恢复想要恢复的文件(
         
请先看完注意再执行本行)
         
比如说这里我希望恢复aaa文件,
         
         
代码: 
         
          代码:
         
 
         
          ext3grep /dev/sda7 --restore-file aaa
         
 
         
         
         就会提示你
         
Running ext3grep version 0.9.0
         
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
         
Number of groups: 24
         
Minimum / maximum journal block: 526 / 4640
         
Loading journal descriptors... sorting... done
         
The oldest inode block that is still in the journal, appears to be from 1224513073 = Mon Oct 20 22:31:13 2008
         
Number of descriptors in journal: 28; min / max sequence numbers: 8 / 13
         
Loading sda7.ext3grep.stage2... done
         
Restoring aaa
         
表示恢复成功,恢复好的文件在你当
         
前目录的 RESTORED_FILES 文件夹中,,我这里就在/root/RESTORED_FILES中,打开一看,果然有无误删的文件aaa
         
         
注意:最好不要恢复在/root下吗,先执行 cd /tmp 或其他地方再执行步骤3比较好,这样恢复的文件就在 /tmp/RESTORED_FILES了
         
         
         
         以上为我两天来恢复我的误删ext3分区里文件的心得,望对大家有用,望高手莫见笑,错误之处请快指出,不然我要被人批,窝窝
         
         
         
         
         
         
附:《ext2文件系统下恢复误删除的文件》
         
http://www.datahf.net/wjwl/105017983.html