我已经成功休眠并从 Linux 中的交换分区恢复。据我所知,此后没有交换任何东西,也没有以其他方式修改交换分区。这让我觉得,以前状态的休眠图像仍然存在并且可以使用,只是修改了标题或类似的东西。
如果那是真的,我怎样才能从这样的图像中恢复?切线问题是尝试这样的事情是否可取,以及它可能会破坏哪些东西。
实现此工作的明显可能性是重新创建休眠过程但实际上不保存图像。在误入歧途之后,/sys/power/resume
我从https://www.kernel.org/doc/Documentation/power/swsusp.txt看到了这个片段:
The resume process checks for the presence of the resume device,
if found, it then checks the contents for the hibernation image signature.
If both are found, it resumes the hibernation image.
由此我感觉,这个签名是在休眠时写的,表示设备需要恢复并在之后擦除以防止反复恢复。即使那是真的,我也不够熟练,无法从内核代码中获取有关签名的信息,而且交换分区的十六进制转储出奇地稀疏,而且充满了我不理解的结构。
我曾经犯过类似的错误:
结果?Linux VM 立即崩溃,所有 Linux 都被完全淹没,无可救药地无法修复或恢复。
甚至通过首先启动到恢复 CD 来修复然后访问 ext4 文件系统,导致系统无法启动,其中包含大量随机损坏的系统和用户数据文件,这让我对任何事物的完整性都没有信心。
唯一明智的做法是从头开始重新安装 Linux 并从备份中恢复数据。
出于类似的原因,如果您启动到以前存储的休眠文件,几乎可以肯定会发生这种情况。(虽然我什至不确定正常运行的系统如何“让”你这样做?)