返回介绍

3.4 数据恢复软件 extundelete 介绍

发布于 2025-04-21 21:33:21 字数 3292 浏览 0 评论 0 收藏

作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候该如何快速、有效地恢复数据呢?本节我们就来介绍一下 Linux 系统下常用的几个数据恢复工具。

3.4.1 如何使用“rm -rf”命令

在 Linux 系统下,通过命令“rm -rf”可以将任何数据直接从硬盘删除,并且没有任何提示,同时 Linux 下也没有与 Windows 下回收站类似的功能,也就意味着,数据在删除后通过常规的手段是无法恢复的,因此使用这个命令要非常慎重。在使用 rm 命令的时候,比较稳妥的方法是把命令参数放到后面,这样有一个提醒的作用。其实还有一个方法,那就是将要删除的东西通过 mv 命令移动到系统下的/tmp 目录下,然后写个脚本定期执行清除操作,这样做可以在一定程度上降低误删除数据的危险性。

其实保证数据安全最好的方法是做好备份,虽然备份不是万能的,但是没有备份是万万不行的。任何数据恢复工具都有一定局限性,都不能保证完整地恢复出所有数据,因此,把备份作为核心,把数据恢复工具作为辅助是运维人员必须坚持的一个准则。

3.4.2 extundelete 与 ext3grep 的异同

在 Linux 下,基于开源的数据恢复工具有很多,常见的有 debugfs、R-Linux、ext3grep、extundelete 等,比较常用的有 ext3grep 和 extundelete,这两个工具的恢复原理基本一样,只是 extundelete 功能更加强大,本节重点介绍 extundelete 的使用方式。

extundelete 是基于 Linux 的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的 inode 信息,从而可以恢复 Linux 下主流的 ext3、ext4 文件系统下被误删除的文件。而 ext3grep 仅支持 ext3 文件系统的恢复。在恢复速度上,extundelete 要快很多,因为 extundelete 的恢复机制是扫描 inode 和恢复数据同时进行,并且支持单个文件恢复、单个目录恢复、inode 恢复、block 恢复、完整磁盘恢复等,而 ext3grep 就略显笨拙了,它需要首先扫描完要恢复数据的所有 inode 信息,然后才能开始数据恢复,所以在恢复速度上相对较慢,并且在功能上也不支持目录恢复、时间段恢复等。

3.4.3 extundelete 的恢复原理

在介绍使用 extundelete 进行恢复数据之前,简单介绍下关于 inode 的知识。在 Linux 下可以通过“ls -id”命令来查看某个文件或者目录的 inode 值,例如查看根目录的 inode 值,可以输入:

[root@cloud1 ~]# ls -id  / 
2 /

由此可知,根目录的 inode 值为 2。

在利用 extundelete 恢复文件时并不依赖特定文件格式,首先 extundelete 会通过文件系统的 inode 信息(根目录的 inode 一般为 2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和 inode。然后利用 inode 信息结合日志去查询该 inode 所在的 block 位置,包括直接块、间接块等信息。最后利用 dd 命令将这些信息备份出来,从而恢复数据文件。

3.4.4 安装 extundelete

extundelete 的官方网站是 http://extundelete.sourceforge.net/,其目前的稳定版本是 extundelete-0.2.4。在安装 extundelete 之前需要安装 e2fsprogs 和 e2fsprogs-libs 两个依赖包。

e2fsprogs 和 e2fsprogs-libs 安装非常简单,这里不做介绍。下面是 extundelete 的编译安装过程:

[root@cloud1 app]# tar jxvf  extundelete-0.2.4.tar.bz2
[root@cloud1 app]# cd extundelete-0.2.4
[root@cloud1 extundelete-0.2.4]# ./configure
[root@cloud1 extundelete-0.2.4]# make
[root@cloud1 extundelete-0.2.4]# make install

成功安装 extundelete 后,会在系统中生成一个 extundelete 可执行文件。extundelete 的使用非常简单,读者可以通过“extundelete --help”获得此软件的使用方法。

3.4.5 extundelete 用法详解

extundelete 安装完成后,就可以执行数据恢复操作了,本节详细介绍 extundelete 每个参数的含义。extundelete 用法如下:

extundelete --help

命令格式:

extundelete [options] [action] device-file

其中,参数(options)有:

- --version,-[vV],显示软件版本号。

- --help,显示软件帮助信息。

- --superblock,显示超级块信息。

- --journal,显示日志信息。

- --after dtime,时间参数,表示在某段时间之后被删的文件或目录。

- --before dtime,时间参数,表示在某段时间之前被删的文件或目录。

动作(action)有:

- --inode ino,显示节点“ino”的信息。

- --block blk,显示数据块“blk”的信息。

- --restore-inode ino[,ino,...],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的 RESTORED_FILES 文件夹中,使用节点编号作为扩展名。

- --restore-file'path',恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的 RECOVERED_FILES 目录中。

- --restore-files'path',恢复命令参数,表示将恢复在路径中已列出的所有文件。

- --restore-all,恢复命令参数,表示将尝试恢复所有目录和文件。

- -j journal,表示从已经命名的文件中读取扩展日志。

- -b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。

- -B blocksize,通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。