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

问题描述:

我在/dev/sdb1上安装Arch Linux,在/dev/sdb2上安装NetBSD-7.0。在/ dev/sdb2上发现未知的Linux发行版:grub配置双启动Arch Linux和NetBSD-7.0

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

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

有一个类似的post,目前正在研究它。

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

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

ls 

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

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

并启动NetBSD-7.0。

要在Arch Linux的NetBSD的选项添加到GRUB菜单,请修改后的文件/etc/grub/40_custom象下面这样:

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

然而,修改40_custom像上面后,NetBSD的选项不会出现在GRUB菜单上。我不知道为什么。

  • 除非你有一个错字,它看起来像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

后有些无奈之前