可以对系统进行热复制吗?


10

我想备份我的系统而不关闭它。系统克隆也应该能够在其他计算机上运行。

在确保没有启动管理任务之后,我尝试将整个系统分区“ dd”放在另一个磁盘上。我想我不得不告诉grub在该磁盘上启动,所以我执行了以下命令:

grub-install  /dev/sdc1 

但是我得到了这个错误:

The file /boot/grub/stage1 not read correctly.

我知道我做的不是很干净,所以您有达到我目标的好解决方案还是解决grub问题的想法?


如果必须让它继续运行,则意味着它实际上正在做某事。如果是这种情况,那么几乎可以肯定的是,备份期间系统的内容将会更改。这使得结果有些不可预测-在投入生产之前要进行大量测试。
2012年

Answers:


8

每个选项都有一些权衡。dd当文件系统以读/写方式挂载时,您不能使用它来克隆文件系统,否则克隆将最终损坏,因为在复制过程中更改了源,因此目标文件将部分过时而部分未更新。如果您确实希望能够使用dd热复制分区,则可以使用LVM快照来进行。这要求您首先使用LVM安装了系统,但是随后您可以随时创建快照,并且由于快照已冻结且未安装,因此可以安全地dd快照,然后删除快照。使用的另一面dd这样做是浪费时间来复制卷中所有未使用的空间,并且即使大多数源未使用,也要求目标至少与该目标一样大。

除了使用dd,您还可以简单地使用传统的备份工具,例如tardump备份快照。这样的好处是不会浪费时间复制可用空间,并且只要有足够的空间容纳文件,就可以将其还原到较小的分区。您还可以仅提取一些文件来进行部分还原。您也不必通过这种方法使用LVM:只要可以合理地确定进行备份时没有文件被修改,就可以在已挂载的文件系统上安全地进行操作。可能发生的最糟糕的情况是,在备份过程中修改的单个文件将被破坏,而不是整个备份都被破坏,就像发生的那样dd

您似乎已经意识到,在还原文件系统之后,您仍然需要重新安装grub才能使系统启动。我不确定在尝试时为什么会遇到该错误,但是似乎您使用的是grub-legacy,因为grub2没有stage1。


我没有使用LVM,但是可以,我正在寻找一种持久的解决方案。复制所有系统树(不包括proc)然后修改grub是否足够?
盖尔·巴宾

@Gael,复制所有文件,然后重新安装grub,是的。您可能还需要更新/ etc / fstab中的UUID。请注意,如果您正在使用,则tar不仅要排除/ proc,还要排除/ dev,/ sys和/ run,或者使用--one-file-system开关阻止它降级到其他文件系统。
psusi 2012年

谢谢,我会尝试用焦油。此解决方案可以完全控制备份。
加尔·巴宾

3

使用类似rsynctar复制分区的方法可能更简单。我会将分区安装在第二个安装点上,就像/mnt复制之前一样。这些选项还允许您更改分区的大小或类型。您可能还具有其他分区上的结构。我经常为/var和分配单独的分区/usr。这些也将需要考虑。

您可能需要深入研究grub文档,以确定如何正确定位磁盘和分区。 install-grub可能会做出错误的假设,而这些假设并不能满足您的需求。

有类似的工具mondo可让您创建安装了OS的可引导恢复CD。


我使用dd是因为我对我说其他文件复制工具只会复制文件,而不复制mbr和分区表。我瞥了一眼mondo,这可能是最简单的解决方案。谢谢
盖尔Barbin

@Gael如果仅克隆SD1,则不会获得MBR。有许多工具可以根据需要更新MBR。它通常已经具有用于查找启动记录的代码。
BillThor 2012年

1

我认为没有真正的选择可以对设备级别的正在运行的系统进行可靠的备份:由于无法冻结当前状态,因此文件系统将变得太损坏,并且备份操作会花费大量时间。

但是,您可以尝试以下选项:

  1. 在虚拟机中运行系统。您可以创建系统的快照,然后对该快照进行备份。备份完成后,可以轻松丢弃快照。这样解决了上述问题。
  2. 在文件系统级别而不是设备级别执行备份。我可以为此推荐rsnapshot。

我正在寻找一种允许在不关闭系统的情况下备份系统的解决方案。因此,无论使用哪种方法,都必须运行系统。如果仅复制文件系统就足以复制系统,则rsync将完成此工作,是什么带来rsnapshot?
盖尔·巴宾

rsnapshot可根据需要(每小时,每天,每周,每月)为您提供尽可能多的增量式多个备份,尽管备份是增量式的,但它们仍以纯完整目录结构提供。
Vilmantas Baranauskas,2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.