如何定期保存 Linux 状态(暂停到磁盘)以便从崩溃中恢复?

如何定期保存 Linux 状态(暂停到磁盘)以便从崩溃中恢复?

有时我的笔记本电脑会因为电池损坏/没电、wifi 驱动程序不佳或其他原因崩溃/死机。

有一段时间,我一直在想是否可以强制 Linux 定期将状态(如 vmware 快照)保存到磁盘,这样您就可以从中恢复可能稍微过时的工作,但至少您的所有应用程序都以您离开时的状态打开。

我真的不明白为什么要不断地从头开始启动一切,尽管 KDE 会在您退出时保存您的状态,但这也不会定期发生(默认情况下)。如果您的内存定期写入磁盘,那么从崩溃中恢复会容易得多。

有人知道是否有系统调用可以做到这一点而无需关闭机器吗?甚至有一个手动按钮来保存整个状态也不错。

答案1

可以通过访问休眠接口/dev/snapshot,该接口在文档/power/userland-swsusp.txt。您可以编写一个基于 uswsusp 的程序s2磁盘, 例如。

但我不确定这是否能可靠地工作,因为休眠仅存储 RAM 中的信息,而不存储当前磁盘/文件系统状态。例如,如果您保存了休眠快照,修改了一些文件并重新加载了快照,则您的磁盘将包含新数据和元数据,但快照可能仍在快照内核的内存中保留旧版本...

去引用文档/power/swsusp.txt

* 重大警告 *************************************************************
 *
 * 如果您在暂停和恢复期间触碰磁盘上的任何内容...
 *...和你的数据说再见。
 *

如果您的笔记本电脑因电池电量耗尽而死机,请将其配置为在电量降至 1% 左右时自动休眠。(如果在笔记本电脑挂起时发生这种情况 - 尝试在Linux 3.6-rc1 及更高版本

如果你的笔记本电脑因为驱动程序错误而死机,报告该错误以便可以修复它。

相关内容