如何配置 grub 从 lvm 分区引导另一个 Linux 发行版?

如何配置 grub 从 lvm 分区引导另一个 Linux 发行版?

(我不再有这个设置,所以我无法测试新的答案,抱歉。我不得不切换计算机,现在只使用 arch;我将问题保留原样,因为我很想知道如果它再次发生时的解决方案,过去几个月 grub 对我非常敌视)我使用 fedora 23 作为我的主操作系统,并进行自定义分区(所有物理分区)/boot/efi=/dev/sda1 root=/dev/sda3。然后在 /dev/Sda2 上我只设置了一个 LVM 物理分区,并创建了一个 LVM 组 ( arch) 和卷 ( root),然后我在上安装了 Arch Linux(没有引导加载程序)/dev/arch/root

我有/dev/sda(GPT),/dev/sdb(GPT)然后grub似乎也检测到hd2并给出无法加载它的错误(我假设这是LVM物理分区)无论如何,我使用os-probergrub2-mkconfig检测我的arch安装,它成功地做到了(这样做两次,我得到了两个菜单条目);但是当我尝试启动它时,出现以下错误:

error: failure reading sector 0x0fc from 'hd2'.
error: failure reading sector 0x0e0 from 'hd2'.
error: failure reading sector 0x0 from 'hd2'.
error: can't find command 'linux'.
error: can't find command 'initrd'.

我只在第一次启动尝试时遇到扇区读取错误(根据记录,fsck 报告驱动器是干净的)任何重试只会给我找不到命令错误。这是 grub.conf 菜单项:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Arch (on /dev/mapper/arch-Root)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-38305dfb-279b-4490-948b-480b81fef81f' {
    insmod part_gpt
    insmod lvm
    insmod ext2
    set root='lvmid/6ZmQFy-ijXr-mYra-3Gp9-l0dh-J4Wi-GSHXhd/WGN2VN-t34t-rYWi-kvje-2BfF-WoD4-4NinnP'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='lvmid/6ZmQFy-ijXr-mYra-3Gp9-l0dh-J4Wi-GSHXhd/WGN2VN-t34t-rYWi-kvje-2BfF-WoD4-4NinnP'  38305dfb-279b-4490-948b-480b81fef81f
    else
      search --no-floppy --fs-uuid --set=root 38305dfb-279b-4490-948b-480b81fef81f
    fi
    linux /boot/vmlinuz-linux root=UUID=38305dfb-279b-4490-948b-480b81fef81f rw quiet
    initrd /boot/initramfs-linux.img
}

有人知道如何解决这个问题吗?任何允许我启动到 arch 的解决方案(除了从 arch 而不是 fedora 重新安装引导加载程序)都可以;我不介意亲自动手编辑 grub.cfg 文件。

答案1

我安装了没有 LVM 分区的 Debian,然后安装了 Fedora,在剩余磁盘空间上使用引导分区时,Fedora 使用 LVM 进行了安装。由于 debian 安装时没有使用 LVM,因此在运行 grub2-mkconfig 时无法读取 fedora 分区来为其添加 grub 条目。对我有用的是lvm2在 Debian 上安装软件包并运行update-grub.

答案2

你说你安装 Arch 时没有引导加载程序。您发布的错误暗示根本没有有效的引导扇区。 IIWY 我会安装 Arch Linux,然后安装 Fedora 23。fedors 安装程序将用 grub 覆盖引导扇区,最坏的情况是,您可以使用自定义 grub 条目来链式加载 Arch。

我距离 grub 专家还很远,但我刚刚让我的笔记本电脑启动 Windows 7、Solaris 11、CentOS 7 和 Ubuntu 14.04 :-DI 必须做一些踢踏舞!

相关内容