linux(centos)下ext4硬盘格式误删文件后的恢复(testdisk与photorec的使用)

在使用winscp上传服务器图片时,由于不小心误删了相似的一个目录下的图片文件,正好在本地有没有这个文件夹的图片备份,所以只好寻找linux(centos)下的文件恢复工具。

   在成功恢复完所在目录的图片后,本文做个总结,以备将来使用。

  这里使用的工具主要是 photorec .  因为testdisk和其在一个包里面,所以其实是一个下载地址。

  1.首先,下载 photorec 软件包。

  下载安装前准备工作:

  因为要恢复硬盘数据,所以基本的原理即不往要恢复的分区里面写入数据。因此在服务器下输入以下命令查看数据目录所在的系统分区:

     df -h

    如图所示:

   

  

比如我们这里发现要恢复的图片之前位于home目录,那么,我们就要选择根目录下面建一个文件夹,比如 testdisk

 

2. 进入这个目录,然后将photorec程序下载并上传到这个目录下。

  photorec下载地址: http://www.cgsecurity.org/wiki/PhotoRec_CN 

 

3. 解压文件,假如我们能下载的是7.0版本的,那么运行下面的解压命令:

 tar jxvf testdisk-7.0-WIP.linux26-x86_64.tar.bz2

 cd进入 testdisk-7.0-WIP 目录 

4. 运行恢复程序:

    由于下载的这个包里面的程序都是静态程序,不需要编译和安装就可以执行,这给我们带来了很大的方便。

   那么 我们来看一下目录结构。

  

  我们可以看到:有三个以_static结束的文件及可用的3个工具。 我们这里主要用到了photorec_static。

下面具体开始进行恢复:

 1)在目录下运行 :  ./photorec_static:得到一下内容:

  

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER
http://www.cgsecurity.org

Continue previous session ? (Y/N)

说明:这是相关选项:在这里询问是否使用上次的配置选项,我们这里因为有一些定制需求,所以输入 N (因为要恢复的文件选择特定格式)。

 

2)弹出选择硬盘框,这里就一个硬盘,直接选择,然后继续。选择界面如图所示:

 

3)主界面如下所示:

   4)使用方向键盘选择向右,选择到option,然后回车,这是设置恢复的一些选项,如图所示

这个界面没什么好说的,就是选择一些性能项,点quit退出此界面

5)主要来看看下面的 File Opt,这个界面主要选择文件夹类型。因为要我恢复的文件是图片类型,所以我选择了png,jpg和gif  ,使用键盘上下查看,左右选择。

文件选择界面如图所示:

选择完后quit。

6)回到主界面,使用上下键选择好分区后,左右键选择search,回车回车即可进行恢复

得到以下内容:

PhotoRec 6.14, Data Recovery Utility, July 2013
Christophe GRENIER
http://www.cgsecurity.org

 4 E extended              3773  22 26 243201  80 63 3846414512

To recover lost files, PhotoRec need to know the filesystem type where the
file were stored:
 [ ext2/ext3 ] ext2/ext3/ext4 filesystem
>[ Other     ] FAT/NTFS/HFS+/ReiserFS/...

选择硬盘所属格式,我这里属于ext4(由这里可见,photorec可以恢复ext2,ext3,ext4以及FAT,NTFS,HFS等格式的磁盘文件)也可以选择other恢复xfs格式的磁盘

选择后进入下一步:

7)选择要恢复到文件的目录:

PhotoRec 6.14, Data Recovery Utility, July 2013

Please select a destination to save the recovered files.
Do not choose to write the files to the same partition they were stored on.
Keys: Arrow keys to select another directory
      C when the destination is correct
      Q to quit
Directory /recover/testdisk-6.14
>drwxr-xr-x   500   500      4096 19-Nov-2014 13:39 .
 drwxr-xr-x     0     0      4096  3-Dec-2014 15:41 ..
 drwxr-xr-x   500   500      4096 30-Jul-2013 20:08 ico
 drwxr-xr-x   500   500      4096 30-Jul-2013 20:08 jni
 drwxr-xr-x   500   500      4096 19-Nov-2014 15:09 l
 -rw-r--r--   500   500       216 12-Nov-2007 00:21 AUTHORS
 -rw-r--r--   500   500      2049  3-Nov-2012 23:23 Android.mk
 -rw-r--r--   500   500     17987 16-Jun-2006 06:01 COPYING
 -rw-r--r--   500   500    154409 30-Jul-2013 19:33 ChangeLog
 -rw-r--r--   500   500       117 13-May-2013 22:02 INFO
 -rw-r--r--   500   500     16670 30-Jul-2013 19:57 NEWS
 -rw-r--r--   500   500      2085 27-Jun-2012 14:46 README
 -rw-r--r--   500   500       344 22-Apr-2008 01:32 THANKS
 -rw-r--r--   500   500        35 30-Jul-2013 20:13 VERSION
 -rw-r--r--   500   500       312 16-Apr-2011 17:21 documentation.html
 -rw-r--r--   500   500       523 30-Jul-2013 20:13 fidentify.8
 -rwxr-xr-x   500   500   1199504 30-Jul-2013 20:13 fidentify_static
 -rw-r--r--   500   500      1075 30-Jul-2013 20:13 photorec.8
 -rw-r--r--     0     0    207344 19-Nov-2014 15:08 photorec.ses
 -rwxr-xr-x   500   500   2713184 30-Jul-2013 20:13 photorec_static
 -rw-r--r--   500   500       299  1-May-2012 17:43 readme.txt
 -rw-r--r--   500   500      1660 30-Jul-2013 20:13 testdisk.8
 -rwxr-xr-x   500   500   2531520 30-Jul-2013 20:13 testdisk_static

这里我要恢复到 l 目录:选择对应目录,按C键确认,Q键退出。这里C键确认。

8)开始进行恢复了,恢复界面如下所示:

 

现在已经进行恢复了,等状态完成结束后,我们就能进入到 对应的 testdisk 对应的 刚才选择目录下查看恢复文件了。

需要注意的是以下几点:

A.恢复文件的目录是 类似recup_dir.1的目录存储的,到达一定数量后会按数字一次新建目录。

B. 要恢复目录区必须得确保有足够的磁盘空间供恢复使用

C. 恢复后文件有可能后缀会稍有差别,这是我遇到的情况,有可能之前是png后缀的图片恢复后是gif格式。这有可能和文件头有关系。

D. 恢复后的文件采用系统规则命名,所以文件名有所改变。

就这么多了,希望您的顺利恢复完成。

本文原创 91CTO,转载请注明出处。

转自:http://www.91cto.com.cn/detail/udepnxs/

你可能感兴趣的:(linux)