如何将 Ubuntu 环境克隆到另一台新的干净机器中?

如何将 Ubuntu 环境克隆到另一台新的干净机器中?

我有一项工作是将整个 Ubuntu 系统克隆到多台新电脑上;包括 RVM、Rails 等,现有 Ubuntu 系统上的所有二进制文件、库、包都应该迁移到新电脑上。

有没有什么工具可以推荐?

Ubuntu 是否有类似于 Mac OS 的 Time Machine 的东西?

还有一个问题是,我所有的电脑是否都是基于英特尔近年来的产品。

例如Ivy Bridge、Sandy Bridge、Haswell……,从I3到I7不等。

我还可以使用 Clonezilla 吗?因为我认为最麻烦的任务是安装和编译我已经安装的所有软件包。

提前致谢

答案1

如果您的机器完全相同/非常相似,那么一个非常简单的解决方案可能会奏效(我们多次使用它来管理我们的 100 多台计算机)。如果您的机器不同,它仍然可以很好地与 Ubuntu 配合使用;我能想到的唯一关键问题是处理器架构 - 无论您多么努力,您都无法启动不兼容的架构。任何机器变化都可能需要一些安装后调整。

从 livecd 启动原始系统,只将tar磁盘内容提取到新创建的分区。您只需注意三件事:

  • /etc/fstab
  • 分区顺序
  • 引导加载程序

详细来说它看起来像这样(在 livecd 上,在 root 上)

mkdir /mnt/orig
mount /dev/${original_system_partition} /mnt/orig
cd /mnt/orig

现在进行编辑etc/fstab/dev/sd${something}代替 UUID。

tar cpvf /media/Pendrive/image.tar .

现在只需记住正确地卸载 pendrive(或任何可移动驱动器)(可能需要一些时间)。


现在从 livecd 启动目标系统并(以 root 身份):

  • 创建分区
mkdir /mnt/目标
挂载 /dev/${target_root_partition} /mnt/target
cd /mnt/目标
tar xvf /media/Pendrive/image.tar
安装-o 绑定/dev//mnt/target/dev
安装 -t proc 无 /mnt/目标
安装 -t sys 无 /mnt/sys
chroot ./bin/bash
update-grub2 (在 chroot 环境中)
出口

现在你已经完成了。

如果你真的有很多台电脑,你可能想用脚本制作一个可启动的 U 盘,这样就不用再做重复的工作了。习惯之后,手动方法就相当快了。

您也可以尝试使用 复制整个磁盘或分区dd。我以前没有尝试过,但这似乎也很合理。这样,您可能能够避免在每台机器上重写 mbr。

如果您想要更强大的解决方案,那么 Clonezilla 可以做非常类似的事情。

如果您的软件“不喜欢”更换机器(例如,它依赖于某些硬件 UUID),那么您可能会倒霉 - 它可能需要在克隆后进行一些工作,或者在实际目的上完全失败。

此外,您可以创建一个脚本来设置每台机器,而不是克隆。这种方法有许多优点。最明显的是:

  • 对于简单的任务,它通常更简单和/或更快。
  • 您的机器可以有很大差异,但您可以很好地处理它。
  • 从脚本来看,可以很清楚地知道做了什么。
  • 如果您需要多个系统,您可以使用具有共同基础的不同脚本来最大限度地减少工作量。
  • 它可能与那些无法进行简单复制的软件一起工作。
  • 即使经过重大修改,使用脚本也更容易保持系统清洁。
  • 您可以对脚本进行版本控制。

相关内容