在Linux中使用extundelete命令恢复已删除的数据

时间:2020-03-05 15:28:38  来源:igfitidea点击:

Extundelete是从ext4和ext3文件系统恢复已删除文件的实用程序。

这是一个易于使用的工具,可免费恢复意外删除的珍贵文件。
它适用于ext4和ext3文件系统。

要安装extundelete,请从sourceforge页面下载。

下载源代码后,我们现在可以按照以下简单步骤进行编译。

安装依赖项

确保在系统上安装了e2fsprogs和e2fslibs库。
Extundelete取决于这些库,因此必须先安装这些库。

要在Fedora中安装ex2fslibs和e2fsprogs:

$sudo yum install ex2fslibs-devel
$sudo yum install e2fsprogs

要在Ubuntu中安装ex2fslibs和e2fsprogs,请执行以下操作:

$sudo apt-get install ex2fslibs-devel
$sudo apt-get install e2fsprogs

编译Extundelete

如果已经成功安装了这两个库,则下一步是编译源代码。

解压缩从sourceforge页面下载的文件。

$tar -xjf extundelete-0.2.4.tar.bz2

将目录更改为提取的文件夹,如下所示。

$cd ex tundelete-0.2.4

运行配置脚本,如果由于权限不足而无法运行,请通过以下方式使脚本可执行:

$chmod u+x configure
$./configure
$make

如果我们没有遇到任何错误,那么可执行文件将存储在extundelete-0.2.4文件夹中的src文件夹中。
现在该恢复那些意外删除的文件了。

无需在系统中安装Extundelete即可运行它。
如果发现有必要安装它,请运行命令,但是在本教程中,我们将从当前目录运行它。

$sudo make install

恢复数据

停止要从中恢复数据的磁盘上正在进行任何写操作的所有进程,然后卸下磁盘。
我们也可以将磁盘挂载为只读。

$umount/dev/sda6

要将磁盘卸载并重新装载为只读,请执行以下操作:

$mount -o remount,ro /dev/sda6

以只读方式安装或者卸载都可以。

在任何时候,我们都可以使用--help选项。

$src/extundelete --help

识别分区

要还原,我们需要标识磁盘名称,例如使用lsblk命令。

$lsblk

运行Extundelete

根据lsblk的输出,我们可以看到分区的名称。
现在,按照下面的示例,相应地替换磁盘的名称。

$src/extundelete /dev/sda6 --restore-file home/xuniaw/filename

注意:文件名是相对于分区的,而不是绝对路径。

这就是为什么它们不以“ /”开头的原因。

如果我们不知道文件的名称是什么,但是可以调出文件存储的目录,请运行以下命令。
这将列出该目录中的文件,并指示是否删除了该文件。

$src/extundelete /dev/sda6 --restore-file home/xuniaw/*

现在,我们可以获取文件名,并在先前的命令中使用它。

现在,在某些情况下,我们已经丢失了特定分区上的所有数据,并且对恢复所有数据感兴趣。

$src/extundelete /dev/sda6 --restore-all

使程序静音

还原所有文件时,我们可能不希望将所有数据都扔到屏幕上。
我们可以使用--log 0操作使程序静音。

$src/extundelete /dev/sda6 --restore-all --log 0

输出到日志文件

或者,如果我们要查看输出,则可以按以下方式登录到文件:

$src/extundelete /dev/sda6 -- restore-all --log logdata.txt