使用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文件直接装。
下载地址:
引用:
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下可以装软件的说),不太清楚,找别的方法去把,不要再看下去了
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