在 /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的主要内容,如果未能解决你的问题,请参考以下文章

linux基础20定制linux系统

linux基础21定制linux系统

第十二章 linux磁盘管理-lvm

Linux练习-LVM创建及管理

linux下根目录扩容

Linux基础命令---mkfs