我花了很多年来安装我现在的Centos专用服务器(OVH,Kimsufi)。 我想将它移动到另一台服务器,虽然操作系统将保持不变,但硬件会有所不同。
我的问题是:是否有一个简单的方法来复制整个系统,因为它是一个新的服务器,而不是搞乱了现有的硬件设置? 克隆整个磁盘是没有问题的,因为新的服务器将有不同的硬件(磁盘大小将保持不变)。
是否有可能只是复制某些文件夹呢? 像/ etc,/ home,/ usr,/ var其中所有安装和configuration的东西驻留,还是会打破新的服务器? 我还没有创build任何自定义的根文件夹。
对于Redhat派生的系统(包括CentOS),你的硬件configuration将主要在/etc/modprobe.conf,/ etc / sysconfig / hwconf,你的初始虚拟盘映像(/boot/initrd-[kernel-version].img)和/ etc / udev目录(这是存储持久性设备名称的地方)。
但是,您可能还需要logging您的系统调整列表。 为了解决这个问题,你可以使用RPM数据库给你一个你已经修改的configuration文件列表(它存储了任何软件包的原始安assembly置文件的MD5总和,你可以将它与你的现有文件进行比较文件系统来生成你已经修改的列表)。 此外,请列出不在RPM数据库中的文件系统中的任何内容。 最后,列出已安装的所有软件包,可能将其分成两个列表 – 操作系统提供的软件包和第三方软件包。 这应该为您提供一组需要放入灾难恢复文档的最低文件,并帮助您在需要时克隆服务器。
如果你的硬件死了,你将如何从备份中恢复? 您至less应该知道您的configuration文件在哪里,而且您的情况中的一条路线可能会解决这个问题。 (事实上,你重视你的调整意味着这些不会都在默认的位置)
或者,这是虚拟化非常有益的一个很好的例子。 如果您使用vmware转换器,您可以制作一个您的服务器的虚拟机,您可以复制或移动到任何硬件上。
对于简单的磁盘布局,使用dd来克隆硬盘是没有问题的,正如Kevin和其他人所build议的那样。 但是如果你的分区布局更复杂,这可能会有所帮助。
最近做了这个,在CentOS系统上,我发现最好的办法是在新硬件上安装骨架系统,从RO介质引导新硬件,转储旧系统并在新系统上恢复(on在安装框架的顶部),在恢复的系统上调整一些硬件特定的设置,就是这样。
更详细地说:
yum update )。 ssh进去。 dumpe2fs 0f - /partition | ssh root@newbox "cd /partition; restore2fs rf - ." dumpe2fs 0f - /partition | ssh root@newbox "cd /partition; restore2fs rf - ." grub{,2}-install /dev/sda或适当的。 /etc/udev/rules.d/70-persistent-net.rules 。 确保新系统上的/etc/fstab的内容与新硬件一致。 /etc/sysconfig/network-scripts/ifcfg-*的内容与新硬件上的接口名称和MAC地址一致。 简而言之,就是这样。 如果X在旧硬件上运行,您可能也必须修复这个问题,但是为什么要在服务器上运行X ?
看看kickstart ,RHEL / CentOS(也是Fedora)的自动安装系统。 它列出要安装的软件包(可以通过yum list installed获得这些yum list installed ,可能需要一些按摩function)和其他configuration,并且可以在脚本部分添加本地configuration。 也许现在没有什么帮助,但是保持一个kickstart文件是最新的安装(或者当你需要克隆一个安装的时候)会节省很多工作。