在 /dev/sdb2 上找到未知的 Linux 发行版:grub 配置双引导 Arch Linux 和 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 菜单选项中。

有一个类似的帖子,目前正在调查中。

更新:我用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以查看磁盘和分区的正确名称,/dev/sdb2在 Linux 上(hd0,gpt2)在 Grub 上。然后运行以下内容:

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

NetBSD-7.0 启动了。

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

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 可能正在从您不希望的分区加载配置。

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

相关内容

  • 没有找到相关文章

最新更新