Linux下利用ext3grep恢复被删除的文件

系统 Linux
你是否曾经因为自己的一时粗心而误删了一些非常重要的文件?小编就曾经犯过这样的错误。不过没关系,只要你看完这篇文章就会发现,其实还是有办法能够补救的。

Linux系统下,如何恢复被删除的文件?看看文章作者是怎样解决的吧!

10个G的数据被误删除了,差点崩溃,试遍了所有常规恢复软件,无用,就要放弃的时候,发现了ext3grep这个开源东东!

顺利恢复所有数据,所以linux下数据删除并不可怕,可怕的是删除后没有恢复的方法,看看下面的操作吧!

 

  1. [root@localhost ~]# uname -a   
  2. Linux localhost.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux 

其实什么版本的系统无所谓 !

所需的相关库

 

  1. [root@localhost ~]# rpm -qa |grep e2fsprogs  
  2. e2fsprogs-libs-1.39-8.el5  
  3. e2fsprogs-1.39-8.el5  
  4. e2fsprogs-devel-1.39-8.el5  

必须要有e2fsprogs-libs,不然在后面ext3grep的安装会有问题。

分区情况:

 

  1. [root@localhost ~]# df -h  
  2. Filesystem Size Used Avail Use% Mounted on  
  3. /dev/mapper/VolGroup00-LogVol00  
  4. 6.2G 1.8G 4.2G 30% /  
  5. /dev/sda1 99M 11M 83M 12% /boot  
  6. /dev/mapper/VolGroup00-LogVol02  
  7. 1008M 34M 924M 4% /data  
  8. tmpfs 125M 0 125M 0% /dev/shm  

需要软件

http://code.google.com/p/ext3grep/downloads/list

先下载软件

 

  1. [root@localhost ~]# cd /root/src/  
  2. [root@localhost src]# wget http://ext3grep.googlecode.com/files/ext3grep-0.6.0.tar.gz src  
  3. [root@localhost src]# ls  
  4. ext3grep-0.6.0.tar.gz  
  5. [root@localhost src]# tar xfvz ext3grep-0.6.0.tar.gz  
  6. [root@localhost ext3grep-0.6.0]# ./configure  
  7. [root@localhost ext3grep-0.6.0]# make install  
  8. [root@localhost ext3grep-0.6.0]# ext3grep  
  9. Running ext3grep version 0.6.0  

编译然后测试可以使用了,一切做好了以后开始我们的恢复过程。

我的目录是/data分区,我先格式化了分区,我放一个文件在根目录下和一个子目录下的文件。

/dev/mapper/VolGroup00-LogVol02 1008M 34M 924M 4% /data

下面斜体部分不是必须的:

其实这里用什么分区倒是无所谓,也可以模拟一个出来,下面是模拟步骤:

 

  1. mkdir /data1/  
  2. cd /data1/  
  3. dd if=/dev/zero of=disk1 count=2048000 
  4. mkfs.ext3 disk1  
  5. mkdir -p /dfs/a  
  6. mount -o loop /data1/disk1 /dfs/a  

这里,我们用/data分区,先拷贝些文件过去

 

  1. [root@localhost ~]# ]# cp /bin/ls /data/  
  2. [root@localhost ~]# ]# cp -rf /bin /data/  
  3. [root@localhost ~]# ]# ls -la /data/  
  4. total 136  
  5. drwxr-xr-x 4 root root 4096 Apr 21 17:37 .  
  6. drwxr-xr-x 25 root root 4096 Apr 21 17:11 ..  
  7. drwxr-xr-x 2 root root 4096 Apr 21 17:37 bin  
  8. drwx—— 2 root root 16384 Apr 21 17:15 lost+found  
  9. -rwxr-xr-x 1 root root 93560 Apr 21 17:37 ls  
  10. [root@localhost ~]#  

一个子目录一个可执行文件

现在删除ls文件和bin下面的zcat

 

  1. [root@localhost ~]# rm /data/ls  
  2. rm: remove regular file `/data/ls’? y  
  3. [root@localhost ~]# rm /data/bin/zcat  
  4. rm: remove regular file `/data/bin/zcat’? y  
  5. [root@localhost ~]# ls -la /data/ls /data/bin/zcat  
  6. ls: /data/ls: No such file or directory  
  7. ls: /data/bin/zcat: No such file or directory  

#p#

文件没有了然后我们来恢复:

首先必须umount掉误删除数据的分区:

 

  1. [root@localhost ~]# umount /dev/mapper/VolGroup00-LogVol02  
  2. [root@localhost ~]# df -h  
  3. Filesystem Size Used Avail Use% Mounted on  
  4. /dev/mapper/VolGroup00-LogVol00  
  5. 6.2G 1.8G 4.2G 30% /  
  6. /dev/sda1 99M 11M 83M 12% /boot  
  7. tmpfs 125M 0 125M 0% /dev/shm  

确认卸载,然后使用ext3grep来恢复。

[root@localhost ~]# ext3grep  /dev/mapper/VolGroup00-LogVol02 --ls --inode 2

这里会创建扫描分区

 

  1. [root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --ls --inode 2  
  2. [root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --restore-file ls  
  3. Running ext3grep version 0.6.0  
  4. WARNING: I don’t know what EXT3_FEATURE_COMPAT_EXT_ATTR is.  
  5. Number of groups: 8  
  6. Minimum / maximum journal block: 585 / 8787  
  7. Loading journal descriptors… sorting… done  
  8. Number of descriptors in journal: 58; min / max sequence numbers: 2 / 5  
  9. Loading VolGroup00-LogVol02.ext3grep.stage2… done  
  10. Restoring ls  
  11. [root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --restore-file bin/ls  
  12. Running ext3grep version 0.6.0  
  13. WARNING: I don’t know what EXT3_FEATURE_COMPAT_EXT_ATTR is.  
  14. Number of groups: 8  
  15. Minimum / maximum journal block: 585 / 8787  
  16. Loading journal descriptors… sorting… done  
  17. Number of descriptors in journal: 58; min / max sequence numbers: 2 / 5  
  18. Loading VolGroup00-LogVol02.ext3grep.stage2… done  
  19. Restoring bin/ls  
  20. [root@localhost ~]# ls -la RESTORED_FILES/  
  21. total 124  
  22. drwxr-xr-x 3 root root 4096 Apr 21 18:01 .  
  23. drwxr-x— 5 root root 4096 Apr 21 17:55 ..  
  24. -rwxr-xr-x 1 root root 93560 Apr 21 17:48 ls  
  25. [root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --restore-file bin/zcat  
  26. Running ext3grep version 0.6.0  
  27. WARNING: I don’t know what EXT3_FEATURE_COMPAT_EXT_ATTR is.  
  28. Number of groups: 8  
  29. Minimum / maximum journal block: 585 / 8787  
  30. Loading journal descriptors… sorting… done  
  31. Number of descriptors in journal: 58; min / max sequence numbers: 2 / 5  
  32. Loading VolGroup00-LogVol02.ext3grep.stage2… done  
  33. Restoring bin/zcat  
  34. [root@localhost ~]# ls -la RESTORED_FILES/bin/  
  35. total 188  
  36. drwxr-xr-x 2 root root 4096 Apr 21 18:01 .  
  37. drwxr-xr-x 3 root root 4096 Apr 21 18:01 ..  
  38. -rwxr-xr-x 1 root root 62136 Apr 21 17:48 zcat  

看看都恢复在RESTORED_FILES目录下,大小也一样,这里RESTORED_FILES目录是执行ext3grep的当前目录下!

也可以使用:

ext3grep /termite/cc-disk --restore-all

恢复所有文件和目录,但是目录的话,如果删除时间较长,不一定能完全恢复,压缩文件一般都能恢复。

如果想详细的了解ext3grep,可以到它的的HOW TO页去看看:

http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html

1、删除/root/shell/hehe下的a文件

2、安装ext3grep-0.10.1.tar.gz     ext3grep命令已经可以正常使用

3、ext3grep /dev/sda3  --ls --inode 2 创建扫描分区

4、ext3grep /dev/sda3  --restore-file root/shell/hehe/a 恢复文件a

5、ext3grep /dev/sda3  --restore-inode 75631   根基inode

【编辑推荐】

  1. 汇总:Linux下svn命令大全
  2. Linux 发行版将引入 /run 目录
  3. Linux上的MRTG流量监控中心介绍
  4. Linux下用mrtg监控网络设备端口流量
  5. Nagios监控Linux和Unix服务器-安装步骤



 

 

责任编辑:冯宇 来源: ChinaUnix文档频道
相关推荐

2009-06-10 08:49:05

LinuxExt3恢复

2009-06-29 08:52:04

Linux

2009-06-27 21:41:55

Linux

2017-01-12 19:22:19

Linuxlsof命令恢复删除的文件

2009-08-17 08:39:41

2021-02-03 10:43:54

Linux系统磁盘

2009-02-17 22:02:04

Linuxboot故障

2017-10-11 16:23:59

Linuxinode删除文件

2009-08-04 08:28:10

2009-03-26 17:46:53

LinuxExt3Reiserfs

2013-06-05 11:41:53

2011-03-30 14:08:27

MySQL数据库删除恢复

2011-07-20 13:07:30

Windows 7恢复

2020-10-05 22:02:00

testdiskLinux文件

2021-10-22 09:42:13

Linux恢复文件

2022-03-28 19:53:24

Linux恢复文件意外删除文件

2009-12-21 16:17:01

2012-05-08 10:56:15

Linux

2010-08-23 09:20:57

2009-10-27 12:47:29

linux Ext3文
点赞
收藏

51CTO技术栈公众号