我在/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菜单上。我不知道为什么。
答案 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后出现一些挫折