实例:Linux EXT3文件系统下成功恢复误删的文件
环境: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 |
2、umount /data0分区:
| 以下是代码片段: umount /data0 |
如果提示busy,先kill正在使用这个目录的进程,再umount:
| 以下是代码片段: fuser -k /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
建议继续学习:
- 利用binlog来恢复数据库 (阅读:4868)
- 这样恢复 Linux 分区下误删的文件 (阅读:4828)
- Oracle数据恢复专题 (阅读:4521)
- 恢复删除的数据表,数据库 (阅读:4523)
- Oracle数据恢复 - Linux / Unix 误删除的文件恢复 (阅读:4161)
- Mysql .frm损坏后如何恢复 (阅读:4122)
- MySQL数据库InnoDB数据恢复工具使用总结 (阅读:4112)
- linux上ext2文件系统中,用debugfs来恢复被删除的文件 (阅读:3613)
- Oracle9i中如何恢复误删除数据? (阅读:3251)
- Oracle数据恢复:格式化,Raid损坏,文件覆盖恢复 (阅读:3015)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:张宴 来源: 回忆未来
- 标签: ext3 ext3grep 数据恢复
- 发布时间:2009-11-05 23:13:56
-
[322] WordPress插件开发 -- 在插件使用 -
[150] 解决 nginx 反向代理网页首尾出现神秘字 -
[91] IOS安全–浅谈关于IOS加固的几种方法 -
[50] Linux Used内存到底哪里去了? -
[50] 二维码的生成细节和原理 -
[50] 到底什么是MVC? -
[47] Shell的那些事儿 -
[47] 中间件和稳定性平台 -
[47] Hacker News 排名算法工作原理 -
[46] 浏览器的工作原理:新式网络浏览器幕后揭秘
