在 /dev/sdb2 上发现未知 Linux 发行版:grub 配置双引导 Arch Linux 和 NetBSD-7.0
Found unknown Linux distribution on /dev/sdb2: grub configuration dual boot Arch Linux and NetBSD-7.0
我在 /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
的消息,但是当我重新启动时,没有那个未知的 grub 选项 Linux 我知道它是 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
后,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
后出现一些挫败感
我在 /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
的消息,但是当我重新启动时,没有那个未知的 grub 选项 Linux 我知道它是 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
后,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 后出现一些挫败感