(转载自ubuntu中文社区 http://forum.ubuntu.org.cn/viewtopic.php?f=122&t=157943) 严重提示:请非常谨慎执行本文操作,操作前备份有用重要文件,出现问题请快回帖或向版主举报,以警示后人,切记切记。 最近老误删一些有用的文件(手贱),心里郁闷阿那个。于是痛下决心要学习文件恢复。上论坛找到一篇名为《[原创]学会恢复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]和 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文件直接装。 下载地址:引用: http://packages.debian.org/zh-cn/sid/i386/ext3grep/download (幸好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下可以装软件的说),不太清楚,找别的方法去把,不要再看下去了 screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://forum.ubuntu.org.cn/images/smilies/em06.gif');}" onmousewheel="return imgzoom(this);" alt="" /> 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 最新评论|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 ) GMT+8, 2024-9-30 07:21 , Processed in 0.235830 second(s), 12 queries , Gzip On, MemCache On. Powered by Discuz! X3.5 © 2001-2023 Discuz! Team. |