Press "Enter" to skip to content

Linux 尝试恢复格式化的磁盘

专门储存游戏截图和录屏的硬盘在装Linux时被误格式化了,一时间让我倍感焦虑。但在偶然看到b站上一位UP主的游戏实况录屏后,我想起了那块硬盘,希望能找回曾经保存的录屏,重温大一大二快乐游戏的时光。幸运的是,由于我在意识到错误时立刻断电,大部分数据应该没有被彻底抹除。

迁移数据

首先,我准备了一块新硬盘,将其作为后续恢复的目标盘,以保护原始数据不被误操作而再次丢失。两个硬盘容量都是512GB,以保证不丢失任何区块的数据。因为我使用的是Linux系统,所以我选择了ddrescue作为数据迁移的工具。

PhotoRec的GUI版本qPhotoRec可以直接恢复文件镜像,所以如果没有新硬盘,直接恢复硬盘镜像也可以,但我没有尝试该方法。

安装ddrescue的命令如下:

sudo dnf install ddrescue

接下来,我们需要查看原始盘和恢复目标盘在系统中的位置,可以使用以下命令:

lsblk

在我的系统中,sda是我的恢复目标盘,而原始数据在sdc中。


把数据传输到另一个硬盘分几步?三步
首先,使用以下命令将原始数据作为镜像文件储存在计算机中(请将sdX更换为原始数据盘的系统位置):

sudo ddrescue -d /dev/sdX backup.img backup.logfile

第二步,将原始数据盘弹出,断电,避免更多损坏数据的可能。

第三步,将镜像文件拷贝到目标恢复盘中(同样,请将sdY更换为目标硬盘的系统位置)

sudo ddrescue -f backup.img /dev/sdY clone.logfile

恢复数据

有了可以自由读取的目标盘,我们就能放心的使用各种工具恢复数据了。在这里我使用的是testdisk的PhotoRec来恢复,这是一个命令行恢复被删除文件的工具。完整的安装教程以及更多使用说明请见: https://www.cgsecurity.org/testdisk_doc/installation.html

(如果喜欢GUI版本可直接安装qphotorec 安装后点击应用图标即可)

fedora下直接运行dnf install testdisk即可安装

安装完后再次使用sudo photorec启动应用,在按照提示操作选择硬磁盘,然后在下方出现如下图的四个选项后按右方向键选择File Opt后回车

这里我们可以选择需要的文件类型,我推荐不勾选xztxt文件或者只勾选自己想要的文件格式。我在第一次恢复时没有设置文件类型,导致恢复出了十五万多个文件,其中大部分都是乱码的txt文件和打不开的xz文件,导致找到需要的文件非常困难。

之后再根据提示选择磁盘格式(误删除文件时磁盘的格式),以及目标文件夹,就可以开始恢复了。我的512GB磁盘大约恢复了两个小时。

恢复完成后会显示恢复的文件数量以及位置,这时就可以前往文件位置查看恢复出的文件了。

PhotoRec会把大约五百各文件存储在一个子文件夹中,所以恢复好的文件夹会有很多子文件夹,需要一一查看。

恢复成果

怀着激动的心,我打开了所有的文件夹一一查看。可惜的是,fedora的安装已经写入了大量无关的图标,示意图等等,所以可以找到的已经不多。下面是一张以前玩无人深空时获得的S级飞船的截图。遗憾的是,我的游戏录屏并没有被恢复出来。我猜想可能是没有选择正确的文件类型,或者被fedora覆盖了。果然还是时常备份、多处备份、保留冷备份才能防患于未然。

One Comment

  1. Linux小技巧 – 早餐莓
    Linux小技巧 – 早餐莓 2024 年 5 月 8 日

    […] 比如在这篇文章我里想找到之前使用的关于ddrescue的命令,只需要将上文的your message更换为ddrescue就能查看所有曾运行过含有该程序的命令: […]

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注