![将 Linux 系统从 sdx 克隆到 cciss](https://linux22.com/image/539942/%E5%B0%86%20Linux%20%E7%B3%BB%E7%BB%9F%E4%BB%8E%20sdx%20%E5%85%8B%E9%9A%86%E5%88%B0%20cciss.png)
我有一台运行 CentOS Linux 5.5 的 HP ML 310 服务器。我正在购买 RAID 卡 (LSI 9260-8i) 来设置镜像 OS 驱动器。目前,启动驱动器设置为在 /dev/sda 的 MBR 上安装 GRUB,/dev/sda1 有一个 100MB 的 /boot 分区,其余部分在 LVM 中配置为 20GB,其中 20GB VG 用于根分区,~80GB VG 用于主分区。新磁盘大小也会略大一些。将启动驱动器克隆到新 CCISS 设备的最佳方法是什么?
答案1
我认为您应该更多地考虑完整的备份/重新安装/恢复周期。您可以使用 DD,但不同的磁盘大小对此没有帮助。
您还可以使用tar
或任何其他工具来获取文件系统的完整转储,重新分区新磁盘并将所有内容解压到正确的位置。您甚至可以使用以下方法通过网络和 livecd/usb 映像执行此操作nc
:
接收备份的机器(/target
安装新磁盘分区的地方):
$ nc -l -p <port> | tar zxvf - -C /target/
备份所在的机器:
$ cat backup.tar.gz | nc <server ip> <port>
答案2
我经常这样做:
在新驱动器上创建分区,“克隆”分区布局。分区不必大小相同、相等或更大。
将一个磁盘上的整个分区 rsync 到新磁盘(rsync -avx --exclude=/proc --exclude=/sys --exclude=/dev --exclude=... ,“-x” 使得它不会超出文件系统边界)
如果分区布局发生变化,请调整 /etc/fstab
一些操作系统使用 /dev/disk/by-id/... 命名,这会在新设备上发生变化,因此需要调整 /etc/fstab、/boot/grub/menu.lst、或许是 /boot/grub/device.map、...
如果克隆到新系统,也必须调整 MAC 地址,但这里情况并非如此......
玩得开心。
答案3
由于您使用的是 LVM,因此使用 LVM 快照是个好主意。我不喜欢克隆 LVM 卷,因为 LVM 正常运行所必需的通用唯一元素不再是通用唯一的。您永远不知道您的系统将在多大程度上继续使用新旧硬件运行。我建议利用 LVM 的快照技术来处理除启动卷之外的所有内容。基本上,您有 VG_existing,并且您必须将您的 PV 添加到新组 VG_new,您将在此组下创建新的 LV,并使用与 VG_old 中的 LV 完全相同的名称。然后,您可以创建 VG_old 中每个卷的快照,并从每个快照执行“dd”到新组中同名的卷。这样,您的 LVM 配置就不会受到阻碍,并且您可以在系统处于活动状态时执行此操作,无需任何实际停机时间。您稍后需要调整 grub,一切就绪。
答案4
这里有一些很棒的答案,但我想发布我自己的答案来记录我所做的有效的事情。大部分内容都可以通过谷歌轻松找到,但有一个关键步骤让我工作到很晚。
安装新的未格式化的磁盘(系统中的旧磁盘和新磁盘)后,假设 /dev/sda 是旧磁盘,/dev/sdb 是新磁盘,sda 是启动设备。我从 CentOS DVD 启动到“linux rescue”执行了此操作:
- 在新磁盘上创建与旧磁盘类似的分区布局(冒号表示 fdisk 中的命令):
- fdisk /dev/sdb
- n; p; 1; ; 13; a; 1 (100M 启动分区)
- n;p;2;;;t;2;8e(磁盘剩余部分的 LVM 分区)
- 瓦;
- lvm pvcreate /dev/sdb2
- lvm vgextend vg1 /dev/sdb2(将 vg1 替换为您的卷组名称)
- lvm pvmove -v /dev/sda2 /dev/sdb2(这需要一段时间)
- lvm vgreduce vg1 /dev/sda2 (从卷组中删除旧磁盘)
- dd if=/dev/sda1 of=/dev/sda2 bs=1024 (克隆启动分区)
- 关闭电源并拔下旧磁盘
- 再次使用 linux rescue 启动 DVD
- chroot /mnt/sysimage
- grub-install /dev/sda (sda 现在是您的新磁盘)
- /sbin/mkinitrd -f /boot/initrd-
uname -r
.imguname -r
(用您最新的内核版本替换 uname -r。在命令中使用 uname -r 的反引号可能会起作用。) - 重新启动(重新启动到磁盘,而不是 DVD)
让我困惑的部分是 mkinitrd,这是必需的,因为系统磁盘位于新控制器后面,并且驱动程序未内置在以前的 initrd 映像中。如果没有它们,它将开始启动但找不到 LVM。