【Linux|数据恢复】extundelete和ext4magic数据恢复工具使用

环境:Centos7.6_x86

一、extundelete工具

1、extundelete介绍

        Extundelete 是一个数据恢复工具,用于从 ext3 或 ext4 分区中恢复删除文件。根据官网0.2.4版本介绍是支持ext4,但实际上使用发现ext4格式有些问题,会报以下错误:

报错1:

报错2:

2、下载extundelete

官网下载链接:Download extundelete (sourceforge.net)

百度网盘下载链接: https://pan.baidu.com/s/14bkmSiIcqab2MW0ng6a7ew?pwd=ub59 提取码: ub59

3、源码安装extundelete

[root@hadoop02 local]# tar -jxf extundelete-0.2.4.tar.bz2
[root@hadoop02 local]# cd extundelete-0.2.4
[root@hadoop02 extundelete-0.2.4]# yum install gcc gcc-c++ e2fsprogs e2fsprogs-devel e2fsprogs-libs
[root@hadoop02 extundelete-0.2.4]# bash install.sh
[root@hadoop02 extundelete-0.2.4]# make && make install
#查看extundelete版本
[root@hadoop02 extundelete-0.2.4]# extundelete --version

4、准备数据文件

5、删除数据

6、数据恢复

(1)取消挂载磁盘

        当发生数据误删情况下,应立马取消挂载磁盘,这是非常重要的,然后再去安装数据恢复工具。因为新数据的写入可能会覆盖需要恢复的文件,当删除数据时,会删除inode元数据信息,实际的数据块并不会删除,没有inode的数据块就会新写入数据覆盖掉。

        有一种现象,如果你的磁盘空间不足,删除文件后发现系统并未释放,因为文件在删除时,正被其他进程一直打开状态或者写入数据,inode是一直存在的,系统就不会释放。

(2)查看可恢复数据

 #显示/dev/sdb1分区信息,2是根的inode号
[root@hadoop02 ~]# extundelete /dev/sdb1 --inode 2

(3)方式一:根据inode号恢复数据

[root@hadoop02 ~]# extundelete /dev/sdb1 --restore-inode indo号

#文件名并不是以前的名字,以file.inode号命名

(4)方式二:根据文件名恢复数据

[root@hadoop02 ~]# extundelete /dev/sdb1 --restore-file 文件名

#文件名是以前的名字 

 (5)方式三:根据目录名恢复数据

[root@hadoop02 ~]# extundelete /dev/sdb1 --restore-directory 目录名

 (6)方式四:恢复所有文件

[root@hadoop02 ~]# extundelete /dev/sdb1 --restore-all

(7)总结

1、extundelete在Centos7.6并不会自动创建空目录和空文件

2、共4种方法,其中根据inode号恢复的文件不会跟之前的名字保持一致,其他3种可以

3、会在当前目录下生成RECOVERED_FILES目录

二、ext4magic工具

1、ext4magic介绍

        用于从ext3或ext4分区中恢复文件数据工具,基于ext3grep和extundelete。

版本区别:

0.2.4(Beta版本)包含老的magic-function,仅支持ext3系统

0.3.2(Beta版本)包含新的magic-function,支持ext3、ext4版本

经测试,0.3.1版本只支持ext3格式,不支持ext4。

2、ext4magic下载

官网链接:ext4magic - Browse Files at SourceForge.net

0.3.2版本:

百度网盘链接: https://pan.baidu.com/s/13mGJlXNYNv9N3GR2TnrSKQ?pwd=pt81 提取码: pt81

0.3.1版本的rpm包,仅支持ext3格式:

链接: https://pan.baidu.com/s/1OP5v_FbvuZ9k2QMdWJFy0Q?pwd=vhrj 提取码: vhrj

3、源码安装ext4magic

[root@hadoop02 local]# tar -xzvf ext4magic-0.3.2.tar.gz
[root@hadoop02 local]# cd ext4magic-0.3.2
[root@hadoop02 ext4magic-0.3.2]# yum install gcc gcc-c++ e2fsprogs-devel libuuid-devel libblkid-devel zlib-devel bzip2-devel file-libs file-devel
[root@hadoop02 ext4magic-0.3.2]# ./configure
[root@hadoop02 ext4magic-0.3.2]# make & make install
#创建软连接
[root@hadoop02 ext4magic-0.3.2]# ln -s /usr/local/ext4magic-0.3.2/src/ext4magic /usr/sbin/ext4magic
#查看版本
[root@hadoop02 ~]# ext4magic -V -X
ext4magic  version : 0.3.2
libext2fs version : 1.42.9
CPU is little endian.

4、准备数据文件

5、删除数据

6、数据恢复

(1)取消挂载磁盘

        当发生数据误删情况下,应立马取消挂载磁盘,这是非常重要的,然后再去安装数据恢复工具

(2)查看可恢复数据

#方式1
[root@hadoop02 ~]# ext4magic /dev/sdb1 -f /
#方式2
[root@hadoop02 ~]# ext4magic /dev/sdb1 -I 2
#查看详细信息加上 -T -x
[root@hadoop02 ~]# ext4magic /dev/sdb1 -I 2 -T -x

(3)常用恢复数据的参数

-r和-m      #两个参数一样效果,只恢复删掉的文件,空文件也会被恢复。情况一:如果删掉的目录,该目录包含文件,会自动创建目录以及恢复文件;情况二:如果删掉的文件,该文件在目录里面,不会恢复该文件;

-R和-M     #两个参数一样效果,恢复整个磁盘的所有文件以及目录,包括空的文件和目录,和没有删掉的目录及文件;

-I        #指定inode号恢复

-f        #指定某个文件或目录

-     #指定数据存放路径

-a        #指定时间戳

(4)方式一:根据inode号恢复文件和目录

#恢复文件,文件名会以inode号命名,可加上-d 指定存放路径,默认恢复前24小时内的文件
[root@hadoop02 ~]# ext4magic /dev/sdb1 -I inode号 -r
#恢复目录,目录会以inode号命名,包括未删除的文件,可加上-d 指定存放路径,默认恢复前24小时内的文件
[root@hadoop02 ~]# ext4magic /dev/sdb1 -I inode号 -R

#恢复文件

#恢复目录

(5)方式二:根据文件名和目录名恢复数据

#恢复文件到/root/data目录下,默认恢复前24小时内的文件
[root@hadoop02 ~]# ext4magic /dev/sdb1 -r -f 文件名 -d /root/data
#恢复目录到/root/data目录下,默认恢复前24小时内的文件
[root@hadoop02 ~]# ext4magic /dev/sdb1 -R -f 目录名 -d /root/data

(6)方式三:恢复整个磁盘数据(全量恢复) 

#恢复磁盘所有数据到/root/data目录下,包含未删掉的文件,默认恢复前24小时内的文件
[root@hadoop02 ~]# ext4magic /dev/sdb1 -R -d /root/data
#-M与-R效果一样
[root@hadoop02 ~]# ext4magic /dev/sdb1 -M -d /root/data

(7)方式四:基于时间搓恢复

#恢复前四天的磁盘的全部数据到/root/data目录,-R可换成-M,如果换成-r或-m,只能恢复文件,并且删除的文件在多级目录里的文件不会恢复,时间可换成具体的时间戳值
[root@hadoop02 ~]# ext4magic /dev/sdb1 -R -a $(date -d "-5day" +%s) -d /root/data/

(8)其他

不支持硬链接,支持软连接 

相关推荐

  1. 数据备份恢复

    2024-06-06 14:41:14       44 阅读
  2. 【Mysql】使用binlog日志进行数据库迁移数据恢复

    2024-06-06 14:41:14       119 阅读
  3. mongodb-数据备份恢复

    2024-06-06 14:41:14       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 14:41:14       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 14:41:14       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 14:41:14       82 阅读
  4. Python语言-面向对象

    2024-06-06 14:41:14       91 阅读

热门阅读

  1. 默认路由,直接路由,静态路由,动态路由

    2024-06-06 14:41:14       27 阅读
  2. 数据库服务器的三种数据结构

    2024-06-06 14:41:14       26 阅读
  3. JVM学习-自定义类加载器

    2024-06-06 14:41:14       30 阅读
  4. Golang:使用go-nanoid生成随机的唯一ID

    2024-06-06 14:41:14       31 阅读
  5. go slice切片的详细知识(包含底层扩容)——2

    2024-06-06 14:41:14       29 阅读
  6. oracle递归查询语法

    2024-06-06 14:41:14       24 阅读