如何在 Linux 上恢复已删除的文件
不小心删除了 Linux 桌面上的文件?别担心。下面介绍了如何在 Linux 上轻松恢复已删除的文件。
丢失数据是所有 PC 用户在某些时候都必须面对的问题。无论是硬盘崩溃还是意外删除,我们都曾遇到过希望能够恢复已删除数据的情况。
幸运的是,在 Linux 上恢复已删除的文件比在其他操作系统上更简单。您可以使用 TestDisk、PhotoRec 和 Foremost 等工具轻松恢复已删除的文件。
开始之前需要了解的事项
Linux 系统为软删除的数据提供垃圾箱/回收站设施。因此,如果您使用键盘上的删除按钮删除了文件,则可以通过访问废纸篓并恢复它们来立即取回这些文件。
但是,如果您使用 Shift + Del 永久删除了这些文件,则需要使用适用于 Linux 的数据恢复软件之一来恢复它们。但由于不同的程序使用不同的方法来恢复丢失的数据,因此在 Linux 上可能需要多次尝试才能获取所有已删除的文件。
值得庆幸的是,即使在永久删除的情况下,数据也不会立即丢失。它们对文件系统是隐藏的,只有在覆盖它们时才会被删除。因此,从硬盘分区恢复丢失数据的第一步是将分区设为只读。它确保您不会意外覆盖已删除的数据。
例如,如果删除的文件位于分区 /dev/sdb1 上,则首先需要将其卸载,然后将其重新挂载为只读。您可以使用以下命令来执行此操作。确保根据您的系统调整分区名称。
sudo umount /dev/sdb1
sudo mount -o ro /dev/sdb1 /media/read-only
将分区克隆到另一个驱动器也是一个好习惯。它将确保您在恢复数据时不会丢失源分区。您可以使用 dd 克隆 Linux 分区。以下命令将 /dev/sdb1 的内容克隆到不同驱动器 /dev/sda 的 sda1 分区。
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 条目以查找该分区上已删除的文件,并在此处列出它们。我们正在寻找此屏幕上显示的文件picture.jpg。
您可以使用 : 选择/取消选择特定文件,并使用 a 选择/取消选择所有文件。选择要恢复的文件后,按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
我们可以使用以下最重要的命令恢复已删除的文件 picture.jpg:
foremost -v -t jpg -i /dev/sdb1 -o ~/recovery/
该命令将搜索/dev/sdb1中所有丢失的JPG图像并将其恢复到~/recovery。 -v 标志启用详细日志记录,-i 指定源分区,-o 指定输出目录。
-t 选项允许用户指定要搜索的文件。 Foremost 支持各种文件类型,可以定位图像、视频、文本和可执行文件。您可以使用逗号分隔的列表搜索多个扩展名。
使用 extundelete 在 Linux 上恢复已删除的文件
extundelete 是一个数据恢复程序,可以从 ext3/ext4 文件系统恢复已删除的文件。这些是 Ubuntu 等流行 Linux 发行版使用的文件系统。您可以使用以下命令之一安装 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
下载后,使用包管理器安装它。安装后,通过应用程序菜单打开软件。出现提示时输入 sudo 密码。
现在,选择包含已删除文件的源分区并使用 GUI 扫描它。您可以根据需要选择不同的扫描方法。
等待扫描完成即可查看已删除文件的列表。选择您需要的并从顶部菜单中恢复它们。
在 Linux 上取回已删除的文件
由于有这么多高质量的数据恢复程序,在 Linux 上恢复已删除的文件非常容易。您可以根据已删除文件的类型和系统的分区配置选择上述任何工具。但是,我们推荐 TestDisk 和 PhotoRec,因为它们提供了干净且简单的交互提示。
由于恢复数据对许多人来说可能是一场噩梦,因此您应该始终将备份存储在外部设备上。只需点击几下鼠标即可检索已删除的数据。