有点像 这个问题 但略有不同(我认为),因为我有6台相同的宏碁Aspire Revo R3610机器。一个(几乎)配置符合我的要求 - 当我完成准备时,我想让其他5台机器完全相同。我是Ubuntu的新手,这是最简单(最简单)的方式吗?
如果这可能是一个问题,机器将在不同的网络上运行(例如,使用Windows,您可以克隆磁盘,但如果它们将在同一网络上运行,则必须在之后进行注册表更改等)。我强调,所有6台机器的硬件都是一样的!
如何有效地将一个源图像克隆到这些相同的机器上?
请为每个答案限制一个软件/解决方案
Clonezilla 听起来很符合你的需求
使用dd的低级副本就可以了!
注意有冲突的IP地址和主机名。
基本上将源驱动器和目标驱动器放在同一台机器上,启动到live cd。并运行如下所示的地方/dev/sda
是源,/dev/sdb
是目的地:
dd if=/dev/sda of=/dev/sdb bs=4096
我记得操作数:
if
- >输入文件
of
- >输出文件
bs
- >块大小(一次读取多少字节)
最简单的方法是在硬盘上运行一个简单的Ubuntu安装,安装VirtualBox并设置一个虚拟的Ubuntu机器。运行您的虚拟机,并根据您的需要设置所需的所有铃声和口哨。完成所有工作并在虚拟计算机上玩游戏。
VirtualBox将虚拟机维护为大型磁盘映像文件(.vdi)以及其他一些小得多的配置文件。只要您想备份虚拟机,只需将其关闭并将其目录复制到备份位置即可。我为此目的使用Passport外置硬盘。
目前,该外置硬盘上同时存在Windows 7和Ubuntu 12虚拟机。所有系统更新,程序,个人文件,图片等都保存在这些虚拟机中。这种类型的备份非常快,因为一个大磁盘映像文件的传输速度比一堆单个文件快得多。由于VirtualBox始终以该格式维护文件,因此始终将虚拟机配置为备份。
该设置的一个优点是我可以在安装了VirtualBox的任何计算机上从外部驱动器上运行这些虚拟机,所以现在,我只需将我的外部驱动器同时带到Windows和Ubuntu,安装VirtualBox我计划使用的任何计算机(我的所有VirtualBox安装文件也在我的外部高清 - 它们可用于所有主要操作系统),我准备好了。我可以将我的虚拟机复制到我正在使用的计算机上,或者只是将其从外部驱动器上运行。
如果您的计算机在某些时候崩溃并死亡,谁在乎,您只需抓住您的Ubuntu安装盘,将其安装在新的或修复过的计算机上,连接外部驱动器,安装VirtualBox,然后将虚拟机重新复制到您的计算机上 - 问题解决了压力最小,时间损失和数据丢失。丢失的数据取决于您上次备份的时间。对于我自己,每当我做出重大改变或添加难以获得的程序时,我都会进行新备份。只需确保虚拟机在运行时正常运行。您不希望将损坏的计算机复制到好的计算机上。
不,我不适用于VirtualBox。
使用Remastersys创建图像,使用启动盘将其传输到笔式驱动器创建者实用程序并安装在其他系统上。
我会以你想要的方式获得一台计算机,并安装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" [email protected]<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,或像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似乎没有移植到不同硬件的问题。我已将硬盘从一台计算机放在另一台计算机上并且它运行良好,我已将安装复制到不同的硬件上,并且它运行良好。
我用过的另一个很棒的克隆工具。设有终端gui。
我使用ddrescue
来完成这项任务。它完美无瑕。超级简单。
我不知道为什么没有人提到这一点。当您想要在另一个文件系统类型上恢复分区的内容(例如,将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
设置恢复的目的地。
Ghost for Linux
Ghost for Linux是一种硬盘和分区映像和克隆工具,类似于Symantec的Norton Ghost(c)和(tm)。可以选择压缩创建的图像,它们可以存储在本地硬盘驱动器上或传输到匿名FTP服务器。可以使用Click'n'Clone功能克隆驱动器。如果本地文件系统不支持写入> 2GB的文件,则g4l支持文件拆分。包含的内核支持ATA,串行ATA和SCSI驱动器。支持通用网卡。它被打包为具有ncurses GUI的可引导CD映像,以便于使用。
我使用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
以更改每台计算机的主机名,以避免网络冲突。