IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

实例:Linux EXT3文件系统下成功恢复误删的文件

回忆未来 2009-11-05 23:13:56 累计浏览 3,667 次
本机暂存

  环境: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

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Linux如何统计进程的CPU利用率 (累计阅读 16,308)
  2. 我的 RHCA 之路 (累计阅读 14,013)
  3. Linux内存点滴 用户进程内存空间 (累计阅读 13,232)
  4. 给程序员新手的一些建议 (累计阅读 13,089)
  5. Linux 性能监控、测试、优化工具 (累计阅读 13,012)
  6. 关于linux内存free的一些事情 (累计阅读 12,869)
  7. ps - 按进程消耗内存多少排序 (累计阅读 12,690)
  8. Google怎么用linux (累计阅读 12,581)
  9. Linux Used内存到底哪里去了? (累计阅读 11,868)
  10. find命令的一点注意事项 (累计阅读 11,867)