【问题标题】:Write a system life saver for ubuntu for restoring broken system to a working state为 ubuntu 编写系统救生程序,用于将损坏的系统恢复到工作状态
【发布时间】:2025-11-21 00:40:01
【问题描述】:

我正在考虑为 ubuntu 编写一个系统救生应用程序,它可以将系统恢复到更早的状态。这在系统中断的情况下可能非常有用。 用户可以在之前创建还原点,然后使用它们来还原他们的系统。 这最初将用于包,然后用于恢复以前版本的文件,有点像 microsoft windows 中的系统恢复功能。 这是想法页面Idea page

我已经经历了一些实现它的想法,就像在 Windows 中完成的那样,通过将有关文件的信息保存在文件系统中,文件系统足够智能,可以用于此功能。但是我们在 linux 中没有这样的文件系统,这样的文件系统之一是 brtfs 但使用它会导致用户创建分区,这会很麻烦。所以我正在考虑一种“写时复制和删除时保存”的方法。创建还原点后,我将在之前由应用程序创建的还原文件夹中创建一个新的备份目录,例如“backup#1”,然后为需要还原的文件创建硬链接。现在,如果从其原始位置删除任何文件,我将拥有它的硬链接,可用于在需要时恢复文件。但是这种方法不适用于修改。对于修改,我正在考虑在文件系统中创建挂钩(使用 redirfs ),这将调用我附加的回调,它将检查文件各个部分的修改。我会将这些所有更改保留在数据库中,然后在需要恢复时立即撤消更改。

请建议我一些有效的方法来做到这一点。 谢谢

【问题讨论】:

  • 您考虑过修订控制系统吗?此外,这感觉不像是 * 式的问题。
  • 您应该查看 LVM 快照。
  • @Mel 好的。我认为这可能是一个好主意,git 和其他 svc 监视给定文件中的变化的方式,但我怀疑它在扩展到整个系统时的性能。你能建议我在哪里问这个问题吗
  • @caf LVM 快照是个好主意,但问题是空间问题,如果有某种方法可能需要比拥有几乎大多数文件的副本更少的空间用户可能不会修改。
  • 听起来像是日志文件系统的工作。当您修改文件系统时,请保留旧信息和提交跟踪,以便您知道要撤消什么以及如何撤消。如果“用户创建分区”是一个问题,我觉得你应该解决这个问题。为什么会出现问题?他们不是已经创建分区了吗?您不能将其范围限制为新安装,并在安装程序中进行分区吗?

标签: linux ubuntu system


【解决方案1】:

就像 cmets 建议的那样,LVM 快照能力为这样的任务提供了良好的基础。它将在每个分区级别上工作,并且仅保存与当前系统状态相比发生更改的扇区。 LVM howto gives a good overview.

不过,您必须从一开始就使用 LVM 设置系统,并为快照留出足够的空间。

【讨论】:

  • 感谢您的帮助,我将通过它的概述。实际上我不能有这种需要重新安装整个系统的方法,难道没有一种解决方法可以像在文件中一样使用 LVM 吗?
  • 我认为没有这么高级的方法,但还是祝你好运。
  • 好的。非常感谢您的帮助,如果您能建议我在其他任何地方发布我的问题,那就太好了。
最近更新 更多