如何在 Linux 上恢复已删除的文件

丢失数据是所有 PC 用户在某个时候都必须面对的问题。 无论是硬盘崩溃还是意外删除,我们都曾遇到过希望能够取回已删除数据的情况。

幸运的是,在 Linux 上恢复已删除的文件比在其他操作系统上更简单。 您可以使用 TestDisk、PhotoRec 和 Foremost 等工具轻松恢复已删除的文件。

开始之前要知道的事情

Linux 系统提供 垃圾箱/回收站 软删除数据的设施。 因此,如果您使用 删除 键盘上的按钮,您可以通过访问 垃圾 并恢复它们。

但是,如果您已使用永久删除文件 Shift + 删除,您需要使用适用于 Linux 的数据恢复软件之一来恢复它们。 但是由于不同的程序使用不同的方法来恢复丢失的数据,因此可能需要多次尝试才能在 Linux 上获取所有已删除的文件。

值得庆幸的是,即使在永久删除的情况下,数据也不会立即丢失。 它们在文件系统中是隐藏的,只有在您覆盖它们时才会被删除。 因此,从硬盘分区恢复丢失数据的第一步是将该分区设置为只读。 它确保您不会意外覆盖已删除的数据。

例如,如果删除的文件在分区上 /dev/sdb1,您首先需要卸载它,然后将其重新安装为只读。 您可以使用以下命令执行此操作。 确保根据您的系统调整分区名称。

sudo umount /dev/sdb1
sudo mount -o ro /dev/sdb1 /media/read-only

将分区克隆到另一个驱动器也是一个好习惯。 它将确保您在恢复数据时不会丢失源分区。 您可以使用 dd 克隆 Linux 分区。 下面的命令克隆的内容 /dev/sdb1sda1 的划分 /dev/sda,不同的驱动器。

dd if=/dev/sdb1 of=/dev/sda1 bs=1M

使用 TestDisk 在 Linux 上恢复已删除的文件

TestDisk 是一款开源数据恢复程序,可以有效恢复永久删除的文件或分区。 它包含许多有用的功能,并提供易于使用的界面。 您可以使用以下命令在 Linux 上安装 TestDisk:

# Ubuntu and Debian
sudo apt install testdisk

# RHEL and CentOS
sudo yum install epel-release
sudo yum install testdisk

# Arch Linux
sudo pacman -S testdisk

安装后,通过打开终端并键入 testdisk 命令来启动 TestDisk。

sudo testdisk

您将在 TestDisk 交互式提示符下找到自己。 使用键盘上的箭头键进行导航并按下 Enter 选择选项。 第一个可用选项是创建日志文件。 继续创建一个。

以下屏幕将显示连接到系统的存储介质列表。 选择包含已删除文件的设备。 我们正在使用 /dev/sdb 本指南的媒体。 相应地选择你的,然后按 继续.

下一个屏幕将提示您选择磁盘的分区类型。 为您的驱动器选择正确的驱动器。 请注意,TestDisk 将尝试自行检测正确的类型。 因此,如果您不确定,请使用 TestDisk 检测到的分区类型。

您将在以下屏幕上看到几个可用选项。 这 分析 选项对于恢复丢失的分区很有用。 但是,我们将使用 先进的 恢复已删除文件的选项。

接下来,您将看到所选设备上存在的所有分区的列表。 选择保存已删除数据的分区并选择 取消删除 从底部菜单。

TestDisk 将扫描 MFT 条目以查找此分区上已删除的文件并在此处列出它们。 我们正在寻找文件 图片.jpg 显示在此屏幕上。

您可以使用选择/取消选择特定文件 和所有文件使用 一种. 选择要恢复的文件后,按 C 复制它们。

系统将提示您选择恢复目标。 导航到那里并按下 C 保存文件。

使用 PhotoRec 在 Linux 上恢复已删除的文件

PhotoRec 是由 TestDisk 的开发人员创建的另一个强大的数据恢复程序。 它是为在 Linux 上恢复已删除的照片而开发的,但后来演变成一个成熟的程序。 您可以使用 PhotoRec 来恢复各种已删除的文件。

TestDisk 和 PhotoRec 之间的区别在于后者甚至可以从已损坏无法修复的磁盘中检索文件。 它使用文件签名来检测已删除的文件,这使得它非常强大。 但是,通过 PhotoRec 检索的文件不会保留其原始文件名。

您可以使用与安装 TestDisk 相同的命令在不同的 Linux 发行版上安装 PhotoRec。 因此,如果您已经安装了 TestDisk,则无需再次安装 PhotoRec。 如果您之前没有安装 TestDisk,请查看上面的部分并安装 testdisk 包。

sudo photorec

此命令将启动 PhotoRec 并带您进入开始菜单。 布局类似于 TestDisk,导航也是。 系统将提示您选择磁盘介质。 选择正确的并按 继续.

然后,您将需要选择源分区。 选择合适的分区并选择 文件选项 从底部菜单。

在这里,您可以指定已删除文件的文件类型。 PhotoRec 默认选择所有文件类型。 您可以禁用所有使用 s 并使用选择特定类型 X. 我们在选择 jpg 用于恢复我们的图像文件。

现在回去使用 q 并选择 搜索 在 Linux 上启动文件恢复的选项。

然后,您需要选择文件系统类型。 选择 其他 如果源分区不是 ext3/ext4。

在此步骤中,您必须指定是在整个分区中搜索选定的文件类型,还是仅在可用空间中搜索。 我们正在选择 可用空间 更快搜索的选项。

下一步需要用户选择目标目录。 确保不要将文件保存在您正在扫描的同一分区上。 使用箭头键导航到所需位置并按下 C 保存。

PhotoRec 现在将扫描空闲扇区并将恢复的文件保存到选定的目的地。 它会将恢复的文件保存在名为 recup_dir.

在 Linux 上使用 Foremost 恢复已删除的文件

Foremost 是一款适用于 Linux 的免费数据恢复工具。 它带有一个简单的 CLI 界面。 尽管该软件不像 TestDisk 或 PhotoRec 那样具有交互性,但它在某些情况下仍然很有帮助。 您可以使用以下命令在 Linux 上安装 Foremost:

# Ubuntu and Debian
sudo apt install foremost

# Fedora
sudo dnf install foremost

# Arch Linux
sudo pacman -S foremost

安装后,使用该软件相对简单。 您可以使用以下命令列出所有可能的选项:

foremost -h

我们可以恢复被删除的文件 图片.jpg 使用以下最重要的命令:

foremost -v -t jpg -i /dev/sdb1 -o ~/recovery/

此命令将搜索所有丢失的 JPG 图像 /dev/sdb1 并将它们恢复到 〜/恢复. 这 -v 标志启用详细日志记录, -一世 指定源分区,并且 -o 指定输出目录。

-t 选项允许用户指定要搜索的文件。 Foremost 支持各种文件类型,可以定位图像、视频、文本和可执行文件。 您可以使用逗号分隔的列表搜索多个扩展名。

使用 extundelete 在 Linux 上恢复已删除的文件

extundelete 是一个数据恢复程序,可以从 ext3/ext4 文件系统中恢复已删除的文件。 这些是流行的 Linux 发行版(如 Ubuntu)使用的文件系统。 您可以使用以下命令之一安装 extundelete:

# Ubuntu and Debian
sudo apt install extundelete

# RHEL and CentOS
sudo yum install extundelete

# Arch Linux
sudo yay -S extundelete

安装后,您可以继续使用 extundelete 从 Linux 系统中恢复已删除的文件。 使用以下命令快速恢复特定文件。 请注意,文件路径是相对于分区的根目录的。

sudo extundelete --restore-file picture.jpg /dev/sdb1

下一个命令从分区中检索所有文件 /dev/sdb1. 更改分区名称以匹配您的源。

sudo extundelete --restore-all /dev/sdb1

如果要将恢复的文件保存到特定目录,请使用 -o 选项。

sudo extundelete -o ~/recovery --restore-all /dev/sdb1

默认情况下,extundelete 将恢复的文件保存在 RECOVERED_FILES/ 子目录。

使用 R-Linux 在 Linux 上恢复已删除的文件

R-Linux 是一个用于 Linux 的 GUI 数据恢复工具,它是免费的,但不是开源的。 它可以扫描 ext2/ext3/ext4 文件系统以查找已删除的文件并恢复它们。 您可以从 R-Tools Technology 网站为您的特定发行版下载 R-Linux 二进制文件。

下载: R-Linux

下载后,使用包管理器安装它。 安装后,通过应用程序菜单打开软件。 Enter sudo 提示时输入密码。

现在,选择包含已删除文件的源分区并使用 GUI 扫描它。 您可以根据需要选择不同的扫描方法。

等到扫描完成以查看已删除文件的列表。 选择您需要的并从顶部菜单中恢复它们。

在 Linux 上恢复已删除的文件

由于有这么多高质量的数据恢复程序,在 Linux 上恢复已删除的文件非常容易。 您可以根据已删除文件的类型和系统的分区配置选择上述任何工具。 但是,我们推荐使用 TestDisk 和 PhotoRec,因为它们提供了简洁明了的交互式提示。

由于恢复数据对许多人来说可能是一场噩梦,因此您应该始终将备份存储在外部设备上。 只需单击几下即可检索已删除的数据。