我想备份我的系统而不关闭它。系统克隆也应该能够在其他计算机上运行。
在确保没有启动管理任务之后,我尝试将整个系统分区“ dd”放在另一个磁盘上。我想我不得不告诉grub在该磁盘上启动,所以我执行了以下命令:
grub-install /dev/sdc1
但是我得到了这个错误:
The file /boot/grub/stage1 not read correctly.
我知道我做的不是很干净,所以您有达到我目标的好解决方案还是解决grub问题的想法?
我想备份我的系统而不关闭它。系统克隆也应该能够在其他计算机上运行。
在确保没有启动管理任务之后,我尝试将整个系统分区“ dd”放在另一个磁盘上。我想我不得不告诉grub在该磁盘上启动,所以我执行了以下命令:
grub-install /dev/sdc1
但是我得到了这个错误:
The file /boot/grub/stage1 not read correctly.
我知道我做的不是很干净,所以您有达到我目标的好解决方案还是解决grub问题的想法?
Answers:
每个选项都有一些权衡。dd
当文件系统以读/写方式挂载时,您不能使用它来克隆文件系统,否则克隆将最终损坏,因为在复制过程中更改了源,因此目标文件将部分过时而部分未更新。如果您确实希望能够使用dd
热复制分区,则可以使用LVM快照来进行。这要求您首先使用LVM安装了系统,但是随后您可以随时创建快照,并且由于快照已冻结且未安装,因此可以安全地dd
快照,然后删除快照。使用的另一面dd
这样做是浪费时间来复制卷中所有未使用的空间,并且即使大多数源未使用,也要求目标至少与该目标一样大。
除了使用dd
,您还可以简单地使用传统的备份工具,例如tar
或dump
备份快照。这样的好处是不会浪费时间复制可用空间,并且只要有足够的空间容纳文件,就可以将其还原到较小的分区。您还可以仅提取一些文件来进行部分还原。您也不必通过这种方法使用LVM:只要可以合理地确定进行备份时没有文件被修改,就可以在已挂载的文件系统上安全地进行操作。可能发生的最糟糕的情况是,在备份过程中修改的单个文件将被破坏,而不是整个备份都被破坏,就像发生的那样dd
。
您似乎已经意识到,在还原文件系统之后,您仍然需要重新安装grub才能使系统启动。我不确定在尝试时为什么会遇到该错误,但是似乎您使用的是grub-legacy,因为grub2没有stage1。
tar
不仅要排除/ proc,还要排除/ dev,/ sys和/ run,或者使用--one-file-system
开关阻止它降级到其他文件系统。
使用类似rsync
或tar
复制分区的方法可能更简单。我会将分区安装在第二个安装点上,就像/mnt
复制之前一样。这些选项还允许您更改分区的大小或类型。您可能还具有其他分区上的结构。我经常为/var
和分配单独的分区/usr
。这些也将需要考虑。
您可能需要深入研究grub
文档,以确定如何正确定位磁盘和分区。 install-grub
可能会做出错误的假设,而这些假设并不能满足您的需求。
有类似的工具mondo
可让您创建安装了OS的可引导恢复CD。
我认为没有真正的选择可以对设备级别的正在运行的系统进行可靠的备份:由于无法冻结当前状态,因此文件系统将变得太损坏,并且备份操作会花费大量时间。
但是,您可以尝试以下选项: