[文章作者:张宴 本文版本:v1.0 最后修改:2009.07.06 转载请注明原文链接:http://blog.zyan.cc/linux_ext3_undelete/]
环境:CentOS 5.3 x86_64下,/dev/sdb1为数据分区/data0,EXT3文件系统。
前因:误删了/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件。由于忘了备份httpcws.cpp文件,重新开发工作量较大,因此只有恢复该文件一条路可走。
debugfs命令针对EXT2分区还行,但对EXT3分区就帮不上忙了。偶然发现的一款开源软件,解决了我的大忙。该软件下载网址为:
http://code.google.com/p/ext3grep/
1、先安装ext3grep软件:
2、umount /data0分区:
如果提示busy,先kill正在使用这个目录的进程,再umount:
3、查询所有Inode,(执行需要几分钟~十多分钟):
4、逐级查找Inode,看是否能找到httpcws.cpp文件(此步骤也可省略):
5、恢复/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件:
如果提示以下信息,则表示恢复成功:
Restoring tcsql/cankao/phpcws-1.5.0/httpcws.cpp
这时,执行ext3grep命令的当前目录下将会自动生成一个名为RESTORED_FILES的文件夹,文件夹下的tcsql/cankao/phpcws-1.5.0/httpcws.cpp即为恢复的文件。查看了一下,和被删除前的内容一样,大功告成。
6、重新mount /data0分区:
参考资料:http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
环境:CentOS 5.3 x86_64下,/dev/sdb1为数据分区/data0,EXT3文件系统。
前因:误删了/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件。由于忘了备份httpcws.cpp文件,重新开发工作量较大,因此只有恢复该文件一条路可走。
debugfs命令针对EXT2分区还行,但对EXT3分区就帮不上忙了。偶然发现的一款开源软件,解决了我的大忙。该软件下载网址为:
http://code.google.com/p/ext3grep/
1、先安装ext3grep软件:
wget http://ext3grep.googlecode.com/files/ext3grep-0.10.1.tar.gz
tar zxvf ext3grep-0.10.1.tar.gz
cd ext3grep-0.10.1
./configure
make
make install
tar zxvf ext3grep-0.10.1.tar.gz
cd ext3grep-0.10.1
./configure
make
make install
2、umount /data0分区:
umount /data0
如果提示busy,先kill正在使用这个目录的进程,再umount:
fuser -k /data0
umount /data0
umount /data0
3、查询所有Inode,(执行需要几分钟~十多分钟):
ext3grep /dev/sdb1 --ls --inode 2
4、逐级查找Inode,看是否能找到httpcws.cpp文件(此步骤也可省略):
5、恢复/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件:
ext3grep /dev/sdb1 --restore-file tcsql/cankao/phpcws-1.5.0/httpcws.cpp
如果提示以下信息,则表示恢复成功:
Restoring tcsql/cankao/phpcws-1.5.0/httpcws.cpp
这时,执行ext3grep命令的当前目录下将会自动生成一个名为RESTORED_FILES的文件夹,文件夹下的tcsql/cankao/phpcws-1.5.0/httpcws.cpp即为恢复的文件。查看了一下,和被删除前的内容一样,大功告成。
6、重新mount /data0分区:
mount /dev/sdb1 /data0
参考资料:http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
TKS
推荐美国VPS:http://www.vpser.net/usa-vps
我不相信把数据库给drop了,本来打算用这个工具来恢复,感觉时间较长,还有风险,所以最后用日志恢复了
1. 如果是/ 分区的文件误删除了,是不是就恢复不了了,umount不掉/分区,只能到单用户模式下恢复是吧
2.ext3grep是需要e2fsprogs-libs-1.35-12.4.EL4支持,但是我的系统是as4-u4的系统,没有装e2fsprogs-libs-1.35-12.4.EL4
[root@voip ~]# rpm -qa | grep e2fs
e2fsprogs-1.35-12.4.EL4
e2fsprogs-devel-1.35-12.4.EL4
晚上也找不到相同版本的e2fsprogs-libs,用源码包编译了好象也不行,郁闷,centos5以上的版本都装了e2fsprogs-libs,装ext3grep就没有问题
3. 张老师你恢复的是文件,要是恢复目录呢用什么命令呀
之前有次删除了重要数据 备份是几天前手动备份的 都了几天数据 非常伤心 当时大脑一片空白 直冒冷汗 .. 哎 ..
我的环境是这样的 LVM卷里的分区 500GB的数据 我使用 ext3grep 进行扫描 进展非常慢 我计算了下 估计需要 20多天 我放弃了查询备份
我一直想找个方法 就像 windows 下的 winhex 一样 只扫描 硬盘的 某一个区域 这样降低搜索时间 可是一直没找到 英文阅读能力也不是很好 最终还是放弃了 ...
不知道 张宴大哥 能不能给点指点 ..
对了 张宴大哥 你这个图是用什么软件 画的啊 ?
这是图片的源地址 (baidu相册上面) : http://hiphotos.baidu.com/shengit/pic/item/ed9bc7fa0381b90a4e4aea46.jpeg