Grub2:在尝试启动 raid1 集上的 LVM 分区时未找到磁盘

Grub2:在尝试启动 raid1 集上的 LVM 分区时未找到磁盘

我无法从存储在 raid-1 物理卷上的 LVM 逻辑卷启动。使用 Ubuntu 13.10 和 Grub2 2.00。

该设置位于/boot/grub物理 raid-1 组上。这一切都可以很好地从另一个物理 raid-1 磁盘启动 linux。我在 lvm 卷(也在 raid-1 物理卷上)上添加了另一个 ubuntu 安装(14.04),打算在根分区空间不足时扩展该卷。这个新的 ubuntu 分区在 kvm 下启动正常,并被 update-grub 识别并添加到 grub 菜单中

当我尝试在物理 PC 上启动新分区时,我看到 grub 菜单,选择新分区并尝试启动,但出现以下错误:

error: no such device: <uuid> 
error: disk lvm/vg-lvname not found
error: you need to load the kernel first

我看到

root=lvm/vg-lvname

(使用我的 vg 和 lv 的名称),以及

prefix=(dm2,0)/boot/grub

请注意,上面的引号包含在 set 命令的响应中。如果我执行 ls,我可以看到我的所有 dm0 等和物理磁盘,但没有显示任何 lvm 磁盘

ls lvm[tab] 

什么也没找到。

lsmod 

显示我认为需要的所有模块(lvm、dmraid、mspart09)都已加载

菜单项grub.cfg为:

menuentry 'Ubuntu 14.04 LTS (14.04)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-b38e71af-fffb-4525-ba66-be153a34dc17' {
    insmod part_msdos
    insmod part_msdos
    insmod part_msdos
    insmod part_msdos
    insmod part_msdos
    insmod part_msdos
    insmod diskfilter
    insmod mdraid09
    insmod diskfilter
    insmod mdraid09
    insmod diskfilter
    insmod mdraid09
    insmod lvm
    insmod ext2
    set root='lvm/vg1-rootfs2'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='lvm/vg1-rootfs2'  b38e71af-fffb-4525-ba66-be153a34dc17
    else
      search --no-floppy --fs-uuid --set=root b38e71af-fffb-4525-ba66-be153a34dc17
    fi
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=b38e71af-fffb-4525-ba66-be153a34dc17 ro nosplash
    initrd /boot/initrd.img-3.13.0-24-generic
}

因此,它似乎在搜索命令上失败了;没有找到 uuid,然后在 linux 命令上失败了,在 root 命令中找不到卷,然后在 initrd 命令上失败了,因为它无法加载 linux 模块

如有任何建议我将非常感激。

答案1

找到解决方案:我发现我需要将 grub 重新安装到启动驱动器(sudo grub-install --modules='lvm mdraid09' /dev/sda 和 ditto for /dev/sdb 因为它们是镜像的),之后它找到我的 lvm 设备并加载内核和 initramfs。

现在,下一步是启动 raid 阵列,以便它可以找到根卷 - 我认为可以通过安装 mdadm 来实现,但我认为我对此没问题,并会询问我是否需要帮助

相关内容