专栏首页python3Linux文件恢复利器 ext3grep

Linux文件恢复利器 ext3grep

 Linux文件恢复利器 ext3grep与extundelete

介绍两款Linux文件恢复工具,ext3grep与extundelete,可能在关键时刻会有所帮助。ext3grep仅对ext3文件系统有效,extundelete对ext3与ext4文件系统都有效

一 实验环境

1 软件环境

vmware workstation 9.0.1

ubuntu server 12.10 

ext3grep 0.10.1

extundelete 0.2.4

2 外挂磁盘

这里外挂2个磁盘来模拟需要恢复的设备。可以通过两种方式实现

第一种:在虚拟机上添加2块虚拟磁盘,具体方法略

第二种:通过dd命令用文件模拟块设备

简单介绍下第二种方式的命令:

  1. cd /home 
  2. dd if=/dev/zero of=sdc1 bs=1M count=100    #块大小为1M,数量为100,也就是100M 
  3. mkfs.ext3 /home/sdc1                     #ext3文件系统格式化 
  4. mount /home/sdc1 /sdc  

本实例采用第一种方式添加2块磁盘,添加后一块ext3格式化,另一块ext4格式化,然后挂载。具体操作过程省略

  1. mount 查看下 
  2. /dev/sdb1 on /sdb type ext4 (rw) 
  3. /dev/sdc1 on /sdc type ext3 (rw) 

3 配置安装源列表

ubuntu配置好安装源列表后,安装软件非常方便,以下是经过测试有效的安装源列表:

  1. root@ubuntu-test:/home# cat /etc/apt/sources.list 
  2. deb http://ubuntu.cn99.com/ubuntu/ quantal main restricted universe multiverse 
  3. deb http://ubuntu.cn99.com/ubuntu/ quantal-updates main restricted universe multiverse 
  4. deb http://ubuntu.cn99.com/ubuntu/ quantal-security main restricted universe multiverse 
  5. deb http://ubuntu.cn99.com/ubuntu/ quantal-backports main restricted universe multiverse 
  6. deb http://ubuntu.cn99.com/ubuntu-cn/ quantal main restricted universe multiverse 

二、ext3grep恢复工具

1 安装ext3grep

在ubuntu服务器上可以使用以下命令直接安装ext3grep,使用这种方式可以直接安装相关的依赖关系包,真是太省心了。

aptitude install ext3grep 

安装完后,可以用以下命令验证下

2 ext3grep查找被删除的文件

ext3grep --ls --inode 2 /dev/sdc1 

注意:这里只能看到/dev/sdc1 根目录下的文件与文件夹,不能显示目录下文件

显示目录vmware-tools-distrib下的文件,列表这个目录节点号

ext3grep --ls --inode 8193 /dev/sdc1 

以上红线条标注的表示已经被删除掉的文件或目录

如果想要显示出所有被删除文件的名字,用以下命令

ext3grep --ls --dump-names /dev/sdc1 > filename.txt      #将显示结果放在一个文件中 

3 恢复单个文件

恢复某个指定的文件,命令如下:

ext3grep --restore-file VMwareTools-9.2.2-893683.tar.gz /dev/sdc1 

然后在当前目录RESTORED_FILES目录下找到被恢复的文件

如果是恢复目录下面的指定文件要加上相对路径

ext3grep --restore-file vmware-tools-distrib/INSTALL.log /dev/sdc1 

4 恢复整个设备上的文件

ext3grep --restore-all /dev/sdc1 

5 恢复指定时间点之前或之后的所有文件

  1. ext3grep --restore-all --after 1365661200 /dev/sdc1 #恢复Apr 11 14:20 2013之后被删文件 
  2. ext3grep --restore-all --before 1365661200 /dev/sdc1   #恢复Apr 11 14:20 2013之前被删文件 

在RHEL与Ubuntu上测试,发现after与before这两个参数好像没起作用,具体啥原因没暂时还没有找到。

三、extundelete恢复工具

1 extundelete软件安装

下载软件

wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 

安装e2fsprogs和e2fslibs

sudo apt-get install e2fsprogs 

安装e2fslibs-dev

sudo apt-get install e2fslibs-dev 

安装C++

sudo apt-get install build-essential 

安装extundelete

 如果是centos 6系统,extundelete依赖e2fsprogs-libs,e2fsprogs-devel,e2fsprogs

  1. tar -jxvf extundelete-0.2.4.tar.bz2 
  2. cd extundelete-0.2.4 
  3. ./configure --prefix=/usr/local/extundelete 
  4. make && make install 

验证是否安装成功

  1. cd /usr/local/extundelete/bin 
  2. ./extundelete -v 

2 查看被删除文件

标记为”Deleted”的文件则是被删除的文件

3 恢复指定的文件

./extundelete --restore-file aaa /dev/sdb1 

说明:在centos 6系统下无论是ext3文件系统还是ext4文件系统,恢复都失败。

4 完全恢复设备上文件

./extundelete --restore-all /dev/sdb1 

说明:在centos 6系统下如果是ext3文件系统,恢复文件成功,恢复目录不成功。如果是ext4文件系统,恢复文件和目录都成功。

5 恢复指定的时间点后被删文件

指定一个时间点

  1. date -d "Apr 11 14:30 2013" +%s 
  2. 1365661800 

恢复这个时间点后的文件

./extundelete --restore-all --after “1365661800” /dev/sdb1 

如果要恢之前的就用before参数。extundelete命令与after结合使用,在进行恢复时非常有用,可以过滤掉那太旧的文件,减小恢复压力。

本文出自“清枫拂面”博客,http://crazy123.blog.51cto.com/1029610/1178991

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大数据-HDFS 文件副本和 Block 块存储

    所有的文件都是以 block 块的方式存放在 HDFS 文件系统当中, 在 Hadoop1当中, 文件的 block 块默认大小是 64M, hadoop2...

    cwl_java
  • Shell 编程的老臣 - sed

    shell 的世界里有两个好兄弟:sed 和 gawk. 今天先讲其一 sed.

    Lenis
  • 大数据-Linux环境配置

    scp /root/.ssh/authorized_keys node02:/root/.ssh

    cwl_java
  • ssh密钥登录默认用户外的其他新建用户

    把ubuntu用户家目录/home/ubuntu下的.ssh文件夹复制到root用户家目录/root下,发现并不能密钥登录,原因是sshd_config配置文件...

    我爱你的一诺
  • Flink计算PV,UV的案例及问题分析

    PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。

    Spark学习技巧
  • 微生物组—宏基因组分析专题研讨会(2020.2)

    在广大粉丝的期待下,《生信宝典》联合《宏基因组》在2020年2月14-16日,北京鼓楼推出《宏基因组分析》专题培训第七期,为大家提供一条走进生信大门的捷径、为同...

    生信宝典
  • 快速学习Git-Git简介

    同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了...

    cwl_java
  • 快速学习Git-Git的安装

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在L...

    cwl_java
  • 时间轮算法(TimingWheel)是如何实现的?

    我在2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的?这篇文章里已经讲解过时间轮算法在JRaft中是怎么应用的,但是我感觉我并没有讲解清楚...

    luozhiyun
  • Shell 编程的老臣 - gawk

    gawk 是 awk 的 GNU 版本。是一个功能更加强大的具有编程扩展性的工具。

    Lenis

扫码关注云+社区

领取腾讯云代金券