在/ dev / sdb2上找到未知的Linux发行版:grub配置双启动Arch Linux和NetBSD-7.0

时间:2016-03-14 08:33:43

标签: archlinux grub netbsd

我在/dev/sdb1上安装了Arch Linux,在/dev/sdb2上安装了NetBSD-7.0。

在Arch Linux上运行sudo grub-mkconfig -o /boot/grub/grub.cfg时,我收到类似Found unknown Linux distribution on /dev/sdb2的消息但是当我重新启动时,对于那个未知的Linux发行版没有grub选项,我知道它是NetBSD-7.0。

重启时如何将NetBSD-7.0添加到我的grub菜单选项中。

目前正在研究类似的post

更新:我使用sudo mount -t ufs -o ro,ufstype=ufs2 /dev/sdb2 /mnt/安装了NetBSD分区(ufstype=44bsd无效)然后运行grub-mkconfig -o /boot/grub/grub.cfg但问题仍然存在。

更新:重新启动并按下c以获取grub命令行。以下命令启动了NetBSD-7.0:

ls

Ran ls以查看正确的磁盘和分区名称,Linux上的/dev/sdb2在Grub上为(hd0,gpt2)。然后运行以下内容:

insmod ufs2
set root=(hd0,gpt2)
knetbsd /netbsd
boot

NetBSD-7.0启动。

要将NetBSD选项添加到Grub菜单,在Arch Linux上修改文件/etc/grub/40_custom,如下所示:

menuentry "NetBSD-7.0"{
insmod ufs2
set root=(hd0,gpt2)
knetbsd /netbsd
}

然而,在修改40_custom之后,如上所述,NetBSD选项不会出现在Grub菜单上。我不知道为什么。

1 个答案:

答案 0 :(得分:1)

  • 除非您有拼写错误,否则看起来40_custom文件位于错误的目录中。它应位于/etc/grub.d/40_custom,请注意.d

  • 如果您的/boot位于单独的分区上,请确保在生成grub.cfg之前使用mount /boot进行装载。否则你的新grub.cfg将无法使用。

  • 通过在grub命令行中运行echo ${prefix}来检查哪个分区grub正在加载配置。 grub可能会从您不期望的分区加载配置。

  • 在重新启动之前验证是否已将netbsd添加到配置grep -i netbsd /boot/grub/grub.cfg,以避免在生成grub.cfg后出现一些挫折