如果这可能成为问题(例如在Windows中,您可以克隆磁盘,但如果它们将在同一网络上运行,则之后必须进行注册表更改),那么这些机器将放置在不同的网络上。强调一下,所有6台机器的硬件是相同的!
如何高效地将一个源镜像克隆到这些相同的机器上?
请每个答案仅限一个软件/解决方案
如果这可能成为问题(例如在Windows中,您可以克隆磁盘,但如果它们将在同一网络上运行,则之后必须进行注册表更改),那么这些机器将放置在不同的网络上。强调一下,所有6台机器的硬件是相同的!
如何高效地将一个源镜像克隆到这些相同的机器上?
请每个答案仅限一个软件/解决方案
/dev/sda
是源驱动器,/dev/sdb
是目标驱动器:
dd if=/dev/sda of=/dev/sdb bs=4096
我记住这些操作数:
if
-> 输入文件
of
-> 输出文件
bs
-> 块大小(每次读取多少字节)ssh-keygen -t rsa
生成一个SSH密钥对。将公钥添加到/root/.ssh/authorized_keys2文件中。然后,我会使用Live CD引导新的计算机,并插入带有SSH私钥的USB存储设备。使用gparted创建一个新分区。然后挂载新分区并运行类似于sudo rsync -avzx -e "ssh -i /media/disk/path/to/privatekey" --exclude=".gvfs" root@<ImageComputerIP>:/ /path/to/new/partition/
的命令来同步文件。
使用blkid
命令找到刚创建的文件系统的UUID。编辑/path/to/new/partition/etc/fstab
文件以反映新的UUID(如果你使用了不同的文件系统,则还需修改文件系统类型)。
然后,我会按照https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot上的说明进行chroot安装。
那个页面的简化版本(不考虑lvm、软件raid、bcache或单独的/boot,就像维基页面所做的那样):
挂载关键的虚拟文件系统。将以下命令作为一个整体运行:
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub
ddrescue
来完成这个任务。它运行得非常完美,超级简单。
请参考 technibble 上的此帖子了解详情。Ghost for Linux
Ghost for Linux是一款类似于Norton Ghost(c)和(tm)的硬盘和分区镜像克隆工具,由Symantec开发。创建的镜像可以选择性地进行压缩,并且可以存储在本地硬盘上或传输到匿名FTP服务器上。使用Click'n'Clone功能可以克隆驱动器。如果本地文件系统不支持写入大于2GB的文件,则g4l支持文件分割。所包含的内核支持ATA、串行ATA和SCSI驱动器。常见的网络卡也得到支持。它被打包为一个可引导的CD映像,并配有ncurses图形用户界面,方便使用。
我不知道为什么没有人提到这个。当你想要将分区的内容恢复到另一种文件系统类型(例如,将ext4内容恢复到ext2或reiserfs)或者想要恢复到一个较小的分区时,这是非常方便的。
我使用过它,而且非常容易。例如,要克隆一个分区,比如/dev/sda1
,你可以使用类似下面的命令:
fsarchiver -A -j 2 -z 1 savefs /media/anwar/USB_Drive/myrootpartition /dev/sda1
-A
选项允许您复制分区,即使它正在使用中!非常棒的功能!
-j 2
表示使用2个CPU核心进行压缩。适用于多核CPU和使用压缩的情况。
-z 1
设置压缩级别。
要恢复您使用的文件系统。
fsarchiver restfs /data/myrootpartition.fsa id=0,dest=/dev/sda2
id=0
表示您正在从存档中恢复第一个文件系统(即使您没有在单个存档中保存多个分区,也需要指定它)。而dest=/dev/sda2
设置了恢复的目标位置。
我经常这样做,使用rsync。
首先,您可以运行rsync将所有数据加载到外部硬盘上(您的外部硬盘应该是ext4格式 - 我使用这种格式,所以我知道它可行): 我假设您有两个分区:/dev/sda1(根)和/dev/sda2(交换)。
在您原始的计算机上运行:
sudo rsync -avuorpESHAX /* /your/hard/drive
sudo swapoff -a
/mnt/etc/fstab
复制的原始UUID创建一个新的交换空间。sudo mkswap /dev/sda2 -U original-UUID
/dev/sda2
)/dev/sda1
的UUID:(在更改UUID之前应该卸载该分区)sudo umount /mnt
sudo tune2fs /dev/sda1 -U old-UUID
sudo mount /dev/sda1 /mnt
sudo rsync -avuorpESHAX /media/your-backup /mnt
sudo grub-install --root-directory /mnt /dev/sda
/etc/hostname
和/etc/hosts
来改变每台机器的主机名,以避免网络冲突。
dd
是用于复制文件/分区/驱动器的工具。因此,如果你克隆一个可启动的光盘(无论是.iso
镜像还是CDFS
分区),结果也将是可启动的。但dd
无法将给定的文件夹/文件集合“转换”为可启动镜像。 - MestreLion