我无法从存储在 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 来实现,但我认为我对此没问题,并会询问我是否需要帮助