我想在不关闭系统的情况下备份系统。系统克隆也应该能够在另一台机器上运行。
我尝试在另一个磁盘上“dd”整个系统分区,之后我确保没有启动任何管理任务。我想我必须告诉 grub 在该磁盘上启动,所以我执行了以下命令:
grub-install /dev/sdc1
但我收到了这个错误:
The file /boot/grub/stage1 not read correctly.
我知道我做的不是很干净,所以你有一个好的解决方案来达到我的目标或者有一个解决 grub 问题的想法吗?
答案1
有几种选择,每种都有其优缺点。您不能dd
在文件系统以读写方式挂载时使用它来克隆文件系统,否则克隆最终会损坏,因为源在复制过程中被更改,因此目标将部分过时,部分不过时。如果您真的想使用它dd
来热复制分区,您可以使用逻辑卷管理器快照。这要求您使用逻辑卷管理器首先,但是您可以随时创建快照,并且由于快照已冻结且未安装,因此您可以安全地创建dd
快照,然后删除快照。使用的另一个缺点dd
是,它会浪费时间复制卷中所有未使用的空间,并且要求目标至少与源一样大,即使大多数源未使用。
除了使用dd
,您还可以使用传统的备份工具(例如tar
或 )dump
来备份快照。这样做的好处是不会浪费时间复制可用空间,而且只要有空间存放文件,就可以将其还原到较小的分区。您还可以仅提取部分文件以进行部分还原。您也不必使用逻辑卷管理器使用这种方法:只要您有理由确信备份时没有文件被修改,在已挂载的文件系统上执行此操作是安全的。可能发生的最糟糕的事情是备份期间修改的单个文件将损坏,而不是整个备份损坏,就像 一样dd
。
您似乎已经意识到,恢复文件系统后,您仍然需要重新安装 grub 才能启动系统。我不确定您尝试时为什么会出现该错误,但似乎您使用的是 grub-legacy,因为 grub2 没有 stage1。
答案2
使用类似rsync
或tar
的命令来复制分区可能更简单。我会像复制之前一样将分区挂载到第二个挂载点上/mnt
。这些选项还允许您更改分区大小或类型。您可能在其他分区上也有结构。我经常有/var
和 的单独分区/usr
。这些也需要考虑。
您可能需要深入grub
研究文档来确定如何正确定位磁盘和分区。 install-grub
可能会做出错误的假设,而这些假设并不会达到您想要的效果。
有一些工具mondo
可以让你创建安装了操作系统的可启动恢复 CD。
答案3
我认为在设备级别上没有真正的选择可以对正在运行的系统进行可靠的备份:由于您无法冻结当前状态并且备份操作需要大量时间,您的文件系统将会受到严重损坏。
不过您可以尝试以下选项:
- 在虚拟机中运行系统。您可以创建系统的快照,然后备份此快照。备份完成后,可以轻松丢弃快照。这解决了上述问题。
- 在文件系统级别而不是设备级别进行备份。我推荐使用 rsnapshot 进行备份。