如何同步要在不同计算机上使用的虚拟机的两个实例?

dan*_*kza 8 rsync virtual-machine ubuntu

我在桌面上使用 VirtualBox 已经有一段时间了。最近买了一个笔记本,我希望能够随身携带我的 Ubuntu 虚拟机,并将我在笔记本上所做的更改传播到桌面,反之亦然,当我到达/离开家时。两台计算机上的主机操作系统都是 Windows 7,运行 VirtualBox 4。

我的第一个想法是同步虚拟磁盘文件本身。我选择的工具是rsync,更具体地说是它的 Cygwin 版本,使用--inplace选项尽可能减少写入。但这将是不可行的:它会阻止我在 VM 上单独工作,因为rsync如果不了解容器内的文件系统,就无法检测冲突并正确合并它们。

下一个选项是rsync将正在运行的机器相互连接。这会在不搞乱包管理的情况下工作吗?除了新内核或驱动程序等更新之外,我还需要手动执行任何操作吗?有没有其他解决方案可以更好地工作?

MvG*_*MvG 2

用于rsync双向操作很困难;我建议你看看unison作为替代方案。它可以双向工作,并在执行此操作之前告诉您它将做什么,并且还检测双方同时操作的文件。

在虚拟机外部运行同步将会出现您所描述的问题。在虚拟机内运行时的结果将很大程度上取决于您同步的内容

  • 同步您的主目录应该完全没有问题,并且我认为应该同步您的大部分日常工作。
  • 仅当您对几乎所有内容进行完全同步(也许有一些经过深思熟虑的例外)时,同步包管理器数据才有意义。不过,在双向同步中,这几乎总是会导致冲突,因此我只建议使用 rsync 风格的方法。
  • /etc与您的 home同步应该会同步大多数配置数据,并且对包管理器的操作影响很小。但是,如果您在一台虚拟机上安装某些软件,则还必须在另一台虚拟机上手动安装它,并且可能只应在执行此操作进行同步,以防升级更改了某些配置文件。