昨晚我在 Linux 机器上使用 CFD 解算器,我需要的内存超过了我已经安装的 16 GB 内存。所以我拿了一个外部硬盘(总容量 360G,剩余约 100G)并发出命令将其用作交换空间。
程序运行到午夜左右,我让机器继续运行,因为工作仍在进行。早上,我看到机器冻结了(可能仍然很忙),所以我重新启动了机器。
然后我检查了我用作 SWAP 的外部驱动器,发现无法访问。我断开了连接,并在 Windows 上检查,它要求我重新格式化。从那时起,我使用了“testdisk”,我发现它似乎没问题,但我无法访问原始内容(Windows 文件)。
我怎样才能访问或恢复该磁盘上剩余的数据?
谢谢。
答案1
你写了:
因此我拿出一个外部硬盘(总容量 360G,剩余约 100G)并发出命令将其用作 SWAP 空间。
“it” 的前因并不清楚,而你问题的答案取决于这个细节:
“它” = 100GiB 可用空间
如果“它”指的是您提到的 100GiB 的可用空间,那么适当的命令应该是:
- 使用
fdisk
、、parted
GParted 或其他工具在未分区空间中创建一个新的分区。 - 使用
mkswap
或 GParted 将新分区准备为交换空间。 - 用于
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 中修复。)