(我不再有这个设置,所以我无法测试新的答案,抱歉。我不得不切换计算机,现在只使用 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-prober
并grub2-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 必须做一些踢踏舞!