将 2 个驱动器 raid0/lvm2 系统转移到新驱动器对

将 2 个驱动器 raid0/lvm2 系统转移到新驱动器对

我有一个多启动、多驱动器系统,我想将其转移到 2 个更大的驱动器上。

目前 PC 有 2x1TB 驱动器,运行 Fedora 19,使用 RAID0 驱动器镜像,LVM2 位于 md 之上。我想将整个 md/lvm 文件系统集传输到在相同 raid0/lvm2 排列中配置的一对新的 2TB 驱动器。除了Fedora之外,还有Windows 7分区和其他杂项分区需要复制。

更困难的是,Fedora 根文件系统存在于 md/lvm2 分区中,因此我需要启动所有这些基础设施。 /boot 位于真正的主分区中。

因此,我可以在仍然安装旧驱动器的同时安装 2 个新驱动器,因此这基本上是一项大型复制任务,但细节是棘手的部分。

使用 GParted Live 启动磁盘,我可以进入并在名为“pool2”的新 raid0 和 lvm2 vg 中配置新驱动器。原来的vg叫做“pool”。我对新文件系统进行分区和挂载,并将所有文件从旧文件系统 tar/复制到新文件系统。但现在两个坚硬的部分正在咬我。

  1. 让 grub2 安装/引导 Fedora 分区的新副本。
  2. 让 Windows 在其新副本上启动。

实际上永远不会去尝试#2,所以对于#1,这是我尝试过的细节以及我陷入困境的地方。

复制后,我断开旧驱动器并将新驱动器更改为 sda 和 sdb。使用启动 iso 再次启动,然后我必须使用以下命令手动启动 raid0:

mdadm -E --扫描
mdadm -A /dev/md0

没有错误,/proc/mdstat 显示 RAID0 的 raid 处于活动状态。

然后我必须手动启动 vg:

vgchange -ay 池2

现在在新分区上重新安装 grub2:

挂载 /dev/mapper/pool2-root /mnt/fedora
挂载 /dev/sda1 /mnt/fedora/boot

cd /mnt/软呢帽
挂载-o绑定/dev dev
mount -o 绑定 /proc proc
挂载-o绑定/sys sys
挂载-t tmpfs tmpfs tmp
chroot /mnt/fedora
grub2 安装 /dev/sda

一切似乎都很顺利。但是当我尝试从新的磁盘驱动器重新启动时,我要么什么也没有得到,就好像没有找到 grub2 一样,或者我得到了 grub 菜单,然后它在启动过程中很早就失败了,因为它找不到根文件系统。

我认为正在发生的事情是所有 grub.cfg 文件仍然充满了旧的引用,例如:

root=/dev/mapper/池根
rd.lvm.lv=池/根
并且 UUID 可能是错误的。

(请记住新驱动器位于 pool2 上)。我还怀疑新位置的 initrd 设置可能不正确。

手动更改 grub.cfg 中的这些值似乎没有帮助,那么我怎样才能让它工作呢?我想我已经很接近了,但是必须执行大量手动 md/lvm2/grub2 命令,我不是这方面的专家,并且缺少一些东西。

答案1

首先,raid0是条带化,镜像是raid1。使用 raid0,如果一个驱动器出现故障,您将失去一切。

您不想创建新的卷组。您想要对新磁盘进行分区,为 /boot 留出空间并为 raid 留出一个分区,然后使用mdadm --create新磁盘上的分区创建新的 raid。然后,您可以使用pvcreate初始化新的 raid 阵列以与 lvm 一起使用,并将vgextend新的 raid 阵列添加到现有卷组,并pvmove从旧阵列中迁移所有内容,然后使用vgreduce从卷组中删除旧阵列。最后,您需要将 /boot 分区复制到新磁盘并使用 .grub 重新安装 grub grub-install

相关内容