在 /dev/sdb2 上发现未知的 Linux 发行版:grub configuration dual boot Arch Linux and NetBSD-7.0
Posted
技术标签:
【中文标题】在 /dev/sdb2 上发现未知的 Linux 发行版:grub configuration dual boot Arch Linux and NetBSD-7.0【英文标题】:Found unknown Linux distribution on /dev/sdb2: grub configuration dual boot Arch Linux and NetBSD-7.0 【发布时间】:2016-06-29 04:59:57 【问题描述】:我在 /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
运行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
后,Grub 菜单上没有出现NetBSD 选项。我不知道为什么。
【问题讨论】:
【参考方案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 后出现一些挫折
【讨论】:
以上是关于在 /dev/sdb2 上发现未知的 Linux 发行版:grub configuration dual boot Arch Linux and NetBSD-7.0的主要内容,如果未能解决你的问题,请参考以下文章