克隆Linux系统的最佳方法

我刚刚完成了在embedded式设备上运行的Debian系统的设置。 它具有自定义分区,大量configuration文件更改,网页内容以及从源代码编译的几个应用程序。

这个确切的设置现在需要镜像到十几个其他相同的embedded式设备。 他们都是相同的处理器,内存,磁盘大小等(因此“相同”)。 什么是最好的方法来做到这一点?

设备中的磁盘实际上不是物理上可访问的,否则我的第一本来是将第二块磁盘放在完成的盒子中,然后用dd来镜像它。

如果我把磁盘镜像到USB记忆棒上,我怎么把它拿到干净的盒子里呢? 我想这将取决于是否可以帮助BIOS?

您的embedded式设备可能会有一定的局限性,所以我将简要介绍一下您可以采取的一般方法。

  1. 制作您已经安装的系统的磁盘映像。 select最适合您设备的磁盘映像软件。

  2. 创build一个启动媒体,将在您的设备上启动,并完全无人看pipe的图像恢复过程。 您可以将设备映像存储在引导介质本身或某个networking共享上,假设您可以轻松访问它。

  3. 把引导媒体放在一个新的设备中,让它做这个工作。 你也可以制作一打引导媒体,并行运行。

正如已经build议看看Clonezilla。 如果它适用于您的设备,那么它可能是最简单的select。

我使用复制方法来重新调整我的根文件系统几次成功,但这些都是普通的磁盘,我可以从一个运行(源)实例的两个文件系统(源和目标)。

(cd / ; tar -cf - . --one-file-system) | (cd /mnt ; tar xvfpB - ) 

这实际上将所有内容复制到一个挂载的目录(新磁盘的根目录),但是可能需要单独将这些文件复制到/ dev /中。

在您的环境中,我无法猜测的一个重要步骤是设置引导加载程序。

几年前,当使用embedded式NSLU2系统(ARM,32M​​B内部存储器,内部8MB片上闪存磁盘)时,我只能从内部mmcblk0将dd复制到文件中进行备份。

如果您的盒子可以从USB棒启动,您可以:

  • 制作一个USB Clonezilla并将图像复制到networking,然后多次从networking复制。
  • 如果您的USB存储棒足够大,请将其存储在USB存储棒上。