我正在考虑为ubuntu编写系统生命保护程序,它可以将系统恢复到早期状态。这在系统中断的情况下非常有用。 用户可以先创建还原点,然后使用它们还原系统。 这将最初用于包,然后用于恢复以前版本的文件,有点像微软Windows中的系统还原功能。 这是想法页面Idea page
我已经完成了一些实现它的想法,就像在Windows中完成的那样,通过保存文件系统中的文件信息,文件系统足够智能,可用于此功能。但是我们在linux中没有这样的文件系统,一个这样的文件系统是brtfs但是使用它会导致用户创建分区,这将是麻烦的。所以我在想一个“写时复制和删除保存”的方法。创建还原点后,我将在之前由应用程序创建的还原文件夹中创建一个新的备份目录,如“backup#1”,然后为需要还原的文件创建硬链接。现在,如果任何文件从其原始位置删除,我将与我的硬链接,可以在需要时用于恢复文件。但是这种方法不适用于修改。为了修改我想在文件系统中创建钩子(使用redirfs),它将调用我附加的回调,它将检查文件各部分的修改。我会在数据库中保留所有这些更改,然后在需要还原后立即撤消更改。
请为我提供一些有效的方法。 感谢
答案 0 :(得分:0)
与建议的评论一样,LVM快照功能为此类工作提供了良好的基础。它将在每个分区级别上工作,并且仅保存与当前系统状态相比更改的扇区。 LVM howto gives a good overview。
但是,您必须从一开始就使用LVM设置系统,并为快照留出足够的空间。