从sdx克隆一个Linux系统到cciss

我有一台运行CentOS Linux 5.5的HP ML 310服务器。 我正在购买RAID卡(LSI 9260-8i)来设置镜像的OS驱动器。 现在,引导驱动器使用安装在/ dev / sda的MBR上的GRUB进行设置,并且对于/ dev / sda1有一个100MB / boot分区,其余部分在LVM中configuration为20GB,根目录为20GB VG分区和〜80GB VG的家庭。 新的磁盘大小也会稍大一些。 将启动驱动器克隆到新的CCISS设备的最佳方法是什么?

我想你应该多想一下完整的备份/重新安装/恢复周期。 你可以使用DD,但不同的磁盘大小不能帮助。

您也可以使用tar或其他任何工具来获取文件系统的完整转储,重新分区新磁盘并将所有内容解压到正确的位置。 你甚至可以通过networking和livecd / usb镜像使用nc

接收备份的机器( /target是新磁盘分区的安装位置):

 $ nc -l -p <port> | tar zxvf - -C /target/ 

机器的备份是:

 $ cat backup.tar.gz | nc <server ip> <port> 

我经常这样做:

  1. 在新驱动器上创build分区,“克隆”分区布局。 分区不必是相同的大小,相等或更大。

  2. rsync整个分区从一个光盘到新的(rsync -avx –exclude = / proc –exclude = / sys –exclude = / dev –exclude = …,“-x”,所以它不会超过文件系统边界)

  3. 如果分区布局改变了,请修改/ etc / fstab

  4. 有些操作系统使用/ dev / disk / by-id / …命名,这会在你的新设备上发生变化,因此可以调整/ etc / fstab,/boot/grub/menu.lst,或者/ boot / grub / device .map,…

  5. 如果克隆到一个新的系统,你将不得不改变MAC地址,但这不是这种情况…

玩的开心。

由于您使用的是LVM,因此使用LVM快照是个不错的主意。 我不是克隆LVM卷的粉丝,因为适当的LVMfunction所必需的通用唯一元素不再是通用唯一的。 你永远不知道你的系统将继续使用新旧硬件运行多less。 我build议利用LVM的快照技术来处理启动卷的其他内容。 基本上,你有VG_existing,你将不得不添加你的PV到一个新的组VG_new,你将在这个组下面创build新的LV,并使用与LV V相同的确切名字。 然后,您可以在VG_old中创build每个卷的快照,并且基本上从每个快照执行一个“dd”到新组中相同名称的卷。 这样你就不会有一个不稳定的LVMconfiguration,你可以用系统来做到这一点,不需要任何真正的停机时间。 您将需要稍后调整grub,并且您全部设置。

我错过了什么吗? 这里没有cciss设备。 cciss通常代表与Compaq / HP Smart Array控制器绑定的块设备。 LSI应该显示为/ dev / sd [x]设备。 无论哪种方式,我build议在这里备份,安装,恢复方法在前面的评论中提到的。

这里有一些很好的答案,但我想发布我自己的文件,logging我做了什么工作。 大部分可以很容易地find谷歌search,但一个关键的步骤让我上class迟到。

对于新安装的未格式化磁盘(系统中的新旧磁盘),假定/ dev / sda是​​旧磁盘&dev / sdb是新的&sda是引导设备。 我从一个CentOS DVD启动到“linux rescue”:

  • 在新磁盘上创build类似于旧的分区布局(冒号表示fdisk中的命令):
    • fdisk / dev / sdb
    • N; 磷; 1; ; 13; 一个; 1(100M启动分区)
    • N; 磷; 2; ; ; 吨; 2; 8e(磁盘剩余部分的LVM分区)
    • 瓦;
  • lvm pvcreate / dev / sdb2
  • lvm vgextend vg1 / dev / sdb2(用卷组名称replacevg1)
  • lvm pvmove -v / dev / sda2 / dev / sdb2(这需要一段时间)
  • lvm vgreduce vg1 / dev / sda2(从卷组中删除旧磁盘)
  • dd if = / dev / sda1 = / dev / sda2 bs = 1024(克隆启动分区)
  • closures并拔出旧磁盘
  • 使用linux rescue重新启动到DVD
  • chroot / mnt / sysimage
  • grub-install / dev / sda(sda现在是你的新磁盘)
  • / sbin / mkinitrd -f / boot / initrd- uname -r .img uname -r (用最近的内核版本replaceuname -r,使用反引号与-uname -r可能在命令中工作。
  • 重新启动(到磁盘,而不是DVD)

让我难堪的部分是mkinitrd,这是必要的,因为系统磁盘是在一个新的控制器的后面,驱动程序没有内置到以前的initrd映像中。 没有他们,它会开始启动,但无法findLVM的。