如何在不休眠的情况下保存机器状态?

如何在不休眠的情况下保存机器状态?

我想知道是否有可能在不真正休眠的情况下捕获机器的状态?目标是创建一个“备份状态”,这样如果系统崩溃,可以直接启动会话,所有窗口都打开,浏览器中的所有选项卡都恢复等。

我认为这可能是不可行的——保存内存快照,然后更改硬盘上的数据,然后再次恢复快照会导致文件描述符损坏等。例如,一个进程在拍摄快照之前打开了一个文件,当恢复快照时,该文件不再存在。

但也许有一个巧妙的方法可以解决这个问题?

答案1

如果您愿意保持所有已安装的块文件系统完全不受影响(即,仅以只读模式安装,例如,即使没有任何更改也会修改 ext4 日志),并在冻结之前卸载其他文件系统(例如 NFS),那么可以。

您可以使用内核参数noresumeresume=指定是否要重新启动进入冻结状态。

顺序如下:

  • 要进行快照,请暂停到磁盘,启动系统而不恢复(noresume)或另一个系统(例如 livecd),将交换分区复制到其他地方,然后使用正确的方式重新启动resume=并使用您的系统。

  • 要返回冻结状态,请使用noresume另一个系统或从另一个系统重新启动,将交换分区复制回来,然后resume=再次使用正确的系统重新启动。

不过我不推荐这样做。虚拟化提供了一种更安全、更经过测试的方法,可以以更少的警告实现您的结果。

相关内容