克隆安装的最佳方法(复制到相同的硬件)


53

有点像这个问题,但略有不同(我认为),因为我有6台相同的Acer Aspire Revo R3610机器。一台(几乎)配置为我的要求-准备完毕后,我想使其他五台机器完全相同。我对Ubuntu非常陌生,最直接(最简单)的方法是什么?

如果这可能会引起问题,则这些计算机将在不同的网络上运行(例如,在Windows中,您可以克隆磁盘,但是如果它们要在同一网络上运行,则随后必须更改注册表)。我强调,所有6台机器的硬件都是一样的!

如何有效地将一个源映像克隆到这些相同的计算机上?

请为每个答案限制一个软件/解决方案

Answers:


31

Clonezilla听起来很符合您的需求


1
完全适合这项工作的工具。我的妈妈运行“ Mumbuntu”,我定期使用clonezilla为她的Acer Revo拍摄快照,并将其带回家以在我作为备份拥有的Revo上还原。工作请客。
popey 2010年

7
使用partimage和ntfsclone之类的工具(Clonezilla用于创建磁盘映像)的一个好处是,它们了解每个分区上的基础文件系统,这使它们只能复制使用的块。由于dd没有此功能,因此无论是否使用分区,它都必须复制分区的每个字节。
埃文(Evan)2010年

1
糟透了 工作两天后无法克隆。挂在Alcating位图上...使用Windows和Acronis Trueimage
OlcayErtaş2011年

DD不会制作可引导备份CD吗?那是使用CloneZilla的原因吗?

@YumYumYum:dd使拷贝一个文件/分区/驱动器。因此,如果克隆可引导CD(.iso映像或CDFS分区),结果也将可引导。但dd不会给定的文件夹/文件“转换”为引导映像。
MestreLion

18

dd

使用dd进行低级复制可以解决问题!

注意冲突的IP地址和主机名。

基本上将源驱动器和目标驱动器放在同一台计算机上,启动进入实时CD。并运行如下所示的内容,其中/dev/sda来源和/dev/sdb目的地:

dd if=/dev/sda of=/dev/sdb bs=4096

我记得以下操作数:

if ->输入文件

of ->输出文件

bs ->块大小(一次读取多少字节)


3
当然不可以吗?= /我见过人们这样做,而我见过人们没有这样做。是否有答案的风格指南?
德里克(Derek)2010年

如果启用了动态IP,则在制作该可启动/备份CD / USB之前是临时的。我认为对于冲突的IP应该没有任何问题。只要将A到Z备份对我来说真的很重要,因为我拥有很多驱动程序。

2
考虑到OpenSSH使用的任何公钥/私钥都是相同的,这有多安全?为了保持系统安全,我们需要更改什么(不同的地方,我们要有所不同)?
2012年

?你说的运行“这样的意思我肯定SDA和深圳发展银行,但不明白为什么你选择的是BS。
SDsolar


3

最简单的方法是在硬盘驱动器上运行Ubuntu裸机安装,安装VirtualBox并设置虚拟Ubuntu计算机。运行您的虚拟机并按照您想要的所有方式进行设置。在虚拟计算机上进行所有工作和娱乐。

VirtualBox将虚拟机与其他一些小得多的配置文件一起维护为大型磁盘映像文件(.vdi)。每当您要备份虚拟机时,只需将其关闭并将其目录复制到备份位置即可。我为此使用Passport外部驱动器。

现在,该外部驱动器上同时有Windows 7和Ubuntu 12虚拟机。所有的系统更新,程序,个人文件,图片等都保存在这些虚拟机中。这种备份非常快,因为一个大磁盘映像文件的传输要比一堆单个文件的传输快得多。由于VirtualBox始终以这种格式维护文件,因此始终将虚拟机配置为备份。

该设置的一个优势是,我可以在安装了VirtualBox的任何计算机上从外部驱动器上运行这些虚拟机,因此,现在,我无需随身携带计算机,只需将外部驱动器与Windows和Ubuntu一起使用,即可在无论我打算使用什么计算机(我的外部hd上都具有所有VirtualBox安装文件-它们可用于所有主要操作系统),因此我准备就绪。我可以将虚拟机复制到正在使用的计算机上,也可以仅在外部驱动器上运行它。

如果您的计算机在某个时候崩溃并死机,您可以在乎,只需拿起Ubuntu安装盘,将其安装在新的或修复的计算机上,连接外部驱动器,安装VirtualBox,然后将虚拟机复制回您的计算机上-以最小的压力,时间损失和数据丢失解决了问题。您丢失多少数据取决于您上次备份的时间。对于我自己,每当我进行重大更改或添加难以获得的程序时,我都会进行一次新备份。只需确保虚拟机在运行时即可正常运行。您不希望将损坏的计算机复制到好的计算机上。

不,我不为VirtualBox工作。


爱它。赞成。我可能只是在下一台机器上执行此操作。
SDsolar '17


2

我将按照自己的方式购买一台计算机,然后安装openssh-server软件包。使用生成ssh密钥对ssh-keygen -t rsa。将公钥添加到/root/.ssh/authorized_keys2。然后,我将使用实时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,也不像Wiki页面那样考虑单独的/ boot):

挂载关键的虚拟文件系统。作为单个命令运行以下命令:

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在移植到其他硬件上似乎没有问题。我已经将硬盘从一台计算机放到另一台计算机上,并且运行良好,并且我将安装复制到了不同的硬件上,并且运行良好。


谢谢您的配合-我很快就会再提出一个,我会尝试一下。干杯
robsoft

引用的链接当前未提及chroot或任何方法。因此,最好引用源中的相关部分。
Henno '16

@Henno Wiki页面已移动。包含页面的问题在于,Wiki会与bcache等新事物保持同步,而仅复制页面内容将错过这些更新,但是仅链接的缺点就在于您。无论哪种方式,都将更新链接,并包括精简版本。
Azendale '16


1

G4L

适用于Linux的Ghost

Ghost Linux版是一种硬盘和分区映像与克隆工具,类似于Symantec的Norton Ghost(c)和(tm)。创建的映像可以选择进行压缩,并且可以将它们存储在本地硬盘驱动器上或转移到匿名FTP服务器。可以使用Click'n'Clone功能克隆驱动器。如果本地文件系统不支持写入大于2GB的文件,则g4l支持文件拆分。随附的内核支持ATA,串行ATA和SCSI驱动器。支持普通网卡。它与ncurses GUI打包为可引导CD映像,以便于使用。


我的天啊。这正是我多年来一直想要的。即使对于Windows。TNX的职位。我马上检查一下。
SDsolar '17

1

弗萨奇弗

我不知道为什么没人提到这一点。当您要在另一种文件系统类型上还原分区的内容(例如,将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设置还原的目的地。


0

我使用rsync做了很多。

首先,您可以运行rsync将所有数据加载到外部硬盘驱动器(您的外部硬盘驱动器应位于ext4中-我使用了它,因此我知道它可以工作):我假设您有两个分区:/ dev / sda1(根)和/ 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

接下来,更改:的UUID /dev/sda1(应该卸载分区以更改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更改每台计算机的主机名,以避免网络冲突。


-1

从未经历过这种困境(我没有数百台服务器-我一直只是使用基本映像),所以我只能凭直觉告诉你。

除此之外,我会说netboot可能是您最好的选择。创建一个主服务器,让它做您想做的事,然后让所有其他计算机从中引导并安装。自动编写脚本(自动运行)应该不会太难。您可以通过kickstart进行所有次要操作。

更多(尽管有些旧):https : //help.ubuntu.com/community/PXEInstallServer

编辑:有一个名为的应用程序system-config-kickstart,应该可以使生成kickstart文件变得容易得多。YMMV。

替代文字


据我所知,这system-config-kickstart是专门为fedora
Shaharia Azam 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.