在/ 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