如何在将硬盘用于 SWAP 后恢复硬盘

如何在将硬盘用于 SWAP 后恢复硬盘

昨晚我在 Linux 机器上使用 CFD 解算器,我需要的内存超过了我已经安装的 16 GB 内存。所以我拿了一个外部硬盘(总容量 360G,剩余约 100G)并发出命令将其用作交换空间。

程序运行到午夜左右,我让机器继续运行,因为工作仍在进行。早上,我看到机器冻结了(可能仍然很忙),所以我重新启动了机器。

然后我检查了我用作 SWAP 的外部驱动器,发现无法访问。我断开了连接,并在 Windows 上检查,它要求我重新格式化。从那时起,我使用了“testdisk”,我发现它似乎没问题,但我无法访问原始内容(Windows 文件)。

我怎样才能访问或恢复该磁盘上剩余的数据?

谢谢。

答案1

你写了:

因此我拿出一个外部硬盘(总容量 360G,剩余约 100G)并发出命令将其用作 SWAP 空间。

“it” 的前因并不清楚,而你问题的答案取决于这个细节:

“它” = 100GiB 可用空间

如果“它”指的是您提到的 100GiB 的可用空间,那么适当的命令应该是:

  1. 使用fdisk、、partedGParted 或其他工具在未分区空间中创建一个新的分区。
  2. 使用mkswap或 GParted 将新分区准备为交换空间。
  3. 用于swapon激活交换空间。

这种情况有多种变体。例如,您可能创建了一个交换文件而不是交换分割。无论如何,这里的关键点是只有部分磁盘被用作交换空间,而磁盘的已使用部分不受 Linux 的交换工具的影响。

在这种情况下,您的原始数据应该可以访问。如果不能,则需要进一步诊断,如下所示....

“它” = 整个磁盘

如果你没有准备交换分区或交换文件,而只是mkswap在整个磁盘设备(/dev/sdb或其他设备)或磁盘上的现有分区上发出(/dev/sdb1例如)上执行,那么你至少会破坏部分现有数据。你也许能够恢复一些使用以下工具照片录制,但您能恢复多少文件取决于您运行软件时占用了多少交换空间。如果使用的交换空间很少,您可能能够恢复大部分文件;但如果您的软件占用了大部分可用磁盘空间,或者您只是在软件使用的特定扇区方面运气不佳,您可能已经丢失了大部分或所有文件。

如果损坏的磁盘使用 NTFS,请注意,有类似于 PhotoRec 的 Windows 专用程序可以执行相同的工作,并且可能做得更好。我使用它的时候,PhotoRec 从未为我恢复文件名;但一些 Windows 专用工具可能会这样做。因此,您可能需要研究此类工具。

在任一情况下....

如果您不确定自己做了什么,可能需要运行两个命令:

  • 输入sudo parted -l以了解您的磁盘是如何分区的。
  • 输入sudo blkid以了解每个分区是如何准备的(它使用什么文件系统,或者是否是交换空间)。

如果您不确定如何解释数据,请编辑您的问题以添加它或发布指向保存输出的 pastebin 网站的链接。

如果您没有将其全部清除为交换空间,这些命令可能会找到问题的原因。不过,在这种情况下,您可能需要做更多的事情。例如,如果您的外部磁盘使用 NTFS,您可能需要CHKDSK从 Windows 运行它。(Linux 中没有足够的 NTFS 修复工具,因此在安装 NTFS 时系统崩溃需要在 Windows 中修复。)

相关内容