克隆安装的最佳方法(复制到相同的硬件)
有点像这个问题,但略有不同(我认为),因为我有6个相同的宏碁Aspire Revo R3610机器。 一个(几乎)配置符合我的要求 – 当我完成准备时,我想让其他5台机器完全相同。 我是Ubuntu的新手,这是最简单(最简单)的方式吗?
如果这可能是一个问题,机器将在不同的网络上运行(例如,使用Windows,您可以克隆磁盘,但如果它们将在同一网络上运行,则必须在之后进行注册表更改等)。 我强调,所有6台机器的硬件都是一样的!
如何有效地将一个源图像克隆到这些相同的机器上?
请为每个答案限制一个软件/解决方案
Clonezilla听起来很符合您的需求
DD
使用dd的低级副本可以做到这一点!
注意冲突的IP地址和主机名。
基本上将源驱动器和目标驱动器放在同一台机器上,启动到live cd。 并运行以下内容,其中/dev/sda
是源,而/dev/sdb
是目标:
dd if=/dev/sda of=/dev/sdb bs=4096
我记得操作数:
if
– >输入文件
– >输出文件
bs
– >块大小(一次读取多少字节)
使用Remastersys创建映像,使用Startup Disk Creator实用程序将其传输到笔式驱动器,然后安装在其他系统上。
最简单的方法是在硬盘上运行一个简单的Ubuntu安装,安装VirtualBox并设置一个虚拟的Ubuntu机器。 运行您的虚拟机,并根据您的需要设置所需的所有铃声和口哨。 完成所有工作并在虚拟计算机上玩游戏。
VirtualBox将虚拟机维护为大型磁盘映像文件(.vdi)以及其他一些小得多的配置文件。 只要您想备份虚拟机,只需将其关闭并将其目录复制到备份位置即可。 我为此目的使用Passport外置硬盘。
目前,该外置硬盘上同时存在Windows 7和Ubuntu 12虚拟机。 所有系统更新,程序,个人文件,图片等都保存在这些虚拟机中。 这种类型的备份速度非常快,因为一个大磁盘映像文件的传输速度比一堆单个文件快得多。 由于VirtualBox始终以该格式维护文件,因此始终将虚拟机配置为备份。
这个设置的一个优点是我可以在安装了VirtualBox的任何计算机上运行外部驱动器上的那些虚拟机,所以现在,我只需将我的外部驱动器同时带到Windows和Ubuntu,安装VirtualBox我计划使用的任何计算机(我的所有VirtualBox安装文件也在我的外部高清 – 它们可用于所有主要操作系统),我准备好了。 我可以将我的虚拟机复制到我正在使用的计算机上,或者只是将其从外部驱动器上运行。
如果您的计算机在某些时候崩溃并死亡,谁在乎,您只需抓住您的Ubuntu安装盘,将其安装在新的或修复过的计算机上,连接外部驱动器,安装VirtualBox,然后将虚拟机重新复制到您的计算机上 – 问题解决了压力最小,时间损失和数据丢失。 丢失的数据取决于您上次备份的时间。 对于我自己,每当我做出重大改变或添加难以获得的程序时,我都会进行新备份。 只需确保虚拟机在运行时正常运行。 您不希望将损坏的计算机复制到好的计算机上。
不,我不适用于VirtualBox。
Partimage
我用过的另一个很棒的克隆工具。 设有终端gui。
我会按照您想要的方式获得一台计算机,并安装openssh-server软件包。 使用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@
使用blkid
命令查找刚刚创建的文件系统的UUID。 编辑/path/to/new/partition/etc/fstab
以反映新的UUID(如果您使用不同的文件系统,则为文件系统类型。)
然后,我将按照https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot上有关如何从chroot安装的说明进行操作。
该页面的简化版本(不考虑lvm,软件raid或bcache,或者像wiki页面那样单独/启动):
挂载关键虚拟文件系统。 将以下命令作为单个命令运行:
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
Chroot到您的正常系统设备:
sudo chroot /mnt
重新安装GRUB 2(用sda,sdb等替换正确的设备。不要指定分区号):
grub-install /dev/sdX
重新创建GRUB 2菜单文件(grub.cfg)
update-grub
退出chroot:键盘上的CTRL-D
顺便说一句,这也适用于备份。 与Windows不同,Ubuntu似乎没有移植到不同硬件的问题。 我把硬盘从一台计算机放到另一台计算机上并且它运行良好,我已经将安装复制到不同的硬件上并且它运行良好。
我使用ddrescue
来完成这项任务。 它完美无瑕。 超级简单。
有关详细信息,请参阅technibble上的此主题
G4L
Ghost for Linux
Ghost for Linux是一种硬盘和分区映像和克隆工具,类似于Symantec的Norton Ghost(c)和(tm)。 创建的映像可选地进行压缩,并且可以存储在本地硬盘驱动器上或传输到匿名FTP服务器。 可以使用Click’n’Clonefunction克隆驱动器。 如果本地文件系统不支持写入> 2GB的文件,则g4l支持文件拆分。 包含的内核支持ATA,串行ATA和SCSI驱动器。 支持通用网卡。 它被打包为带有ncurses GUI的可启动CD映像,以便于使用。
Fsarchiver
我不知道为什么没有人提到这一点。 当您想要在另一个文件系统类型上恢复分区的内容时(例如,将ext4内容还原到ext2或reiserfs)或者您想要还原到较小的分区,这尤其方便。
我用它,这很容易。 例如,要克隆分区,请说/dev/sda1
您可以使用这样的命令
fsarchiver -A -j 2 -z 1 savefs /media/anwar/USB_Drive/myrootpartition /dev/sda1
-A
选项允许您复制分区,即使它已被使用! 很棒的function!
-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(root)和/ dev / sda2(交换)。
在原始计算机上运行:
sudo rsync -avuorpESHAX /* /your/hard/drive
复制数据后,使用USB记忆棒启动下一台计算机,并将内部硬盘驱动器格式化为原始硬盘驱动器。
将外部驱动器挂载到/mnt
,然后复制所有分区的UUID。 编辑新计算机分区的UUID,并从原始数据中放入您复制的相同UUID(位于/mnt/etc/fstab
)。
关闭交换:
sudo swapoff -a
使用原始UUID创建一个新的交换,从/mnt/etc/fstab
复制:
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
将rsync反向到目标:
sudo rsync -avuorpESHAX /media/your-backup /mnt
重新安装grub:
sudo grub-install --root-directory /mnt /dev/sda
这会奏效。 请记住编辑/etc/hostname
和/etc/hosts
以更改每台计算机的主机名,以避免网络冲突。
从来没有遇到过这种困境(我没有数百台服务器 – 我一直只是使用基本图像),我只能给你我的直觉。
除此之外,我会说netboot可能是你最好的选择。 创建一个主服务器,让它做你想做的事情,然后让所有其他机器启动并安装它。 自动编写脚本(ala run-once)应该不会太难。 你通过kickstart完成所有次要的事情。
更多(虽然它有点旧): https : //help.ubuntu.com/community/PXEInstallServer
编辑:有一个名为system-config-kickstart
的应用程序应该有助于使生成kickstart文件更加容易。 因人而异。
大规模安装的另一个选择是Ubuntu Landscape /私有云方法,您可以(基本上)基于硬件池动态配置服务器。 聪明的东西。