使用 RSYNC 克隆驱动器后修复 GRUB

使用 RSYNC 克隆驱动器后修复 GRUB

我有一个远程服务器(无法对其进行物理访问),我需要在本地克隆。因此,我将辅助 HD 连接到本地 Linux 服务器,创建分区 boot、swap 和 root,并 rsync 远程服务器上的所有数据。复制过程很顺利,但是当我尝试激活 grub 以便新驱动器可启动时,会发生这种情况(远程服务器具有 LVM 分区,而在本地驱动器上我刚刚正常创建启动、交换和根目录):

我这样安装复制的图像:

mount /dev/sdb3 /mount && mount /dev/sdb1 /mount/boot/

mount --bind /dev /mount/dev && mount --bind /dev/pts /mount/dev/pts && mount --bind /proc /mount/proc && mount --bind /sys /mount/sys
chroot /mount

然后我尝试安装 grub:

grub-install /dev/sdb

找不到设备/dev/mapper/VolGroup-lv_root

文件/boot/grub/stage1读取不正确。

(我尝试启动到该驱动器,但收到“grub救援”提示)

/dev/mapper/VolGroup-lv_root是远程服务器的根分区。我不知道我需要在这里做什么。我尝试删除该/boot/grub/文件夹并尝试重新安装 grub,但还是发生了同样的情况。我如何告诉 grub 现在是根分区,/dev/sda3或者您将如何解决这个问题?

grub.conf 文件:

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux Server (2.6.32-573.7.1.el6.x86_64)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-573.7.1.el6.x86_64 root=/dev/sda1

        initrd /initramfs-2.6.32-573.7.1.el6.x86_64.img

克隆驱动器上的 fdisk -l 输出:

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1          66      524288   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sdb2              66        2155    16777216   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sdb3            2155       41774   318241792   83  Linux

Partition 3 does not end on cylinder boundary.

答案1

您需要更新文件/etc/fstab和 GRUB 配置以反映从 LVM 到非 LVM 的更改。如果您使用原始 GRUB(即 GRUB 的更好版本),您只需在/boot/grub/grub.conf.如果您使用 GRUB2(即烦人的 GRUB 版本),您将需要更改一堆最有可能位于/etc/defaults/grub/.可能值得花时间在整个目录中搜索/etc“VolGroup”之类的内容,只是为了查看引用所有 LVM 设备的位置,因为可能有其他服务引用实际设备而不是挂载(具体来说,udev? )。

grep -r 'VolGroup' /etc

相关内容