如何正确指定 nixos 的启动额外条目

如何正确指定 nixos 的启动额外条目

Nixos 在手册中有一个配置选项,用于在 grub 菜单中指定额外的条目boot.loader.grub. extraEntries,但我无法让它与手册中的示例一起工作。这个想法是让 nixos 安装的 grub 版本为其他可启动分区提供额外的条目。例如,如果安装了 Ubuntu(或 Debian 或 BSD 等)并从 /dev/sda2 启动,则应该能够将 nixos 安装到 /dev/sda1,将 /dev/sda 用于 grub,并启动 nixos 或 Ubuntu。

我可以让boot.loader.grub.extraEntries出现在菜单中,但无法成功启动 Ubuntu 安装。Nixos 启动正常,我可以从救援 CD 启动 Ubuntu 分区。有人有类似的方法吗,或者他们可以给我提供其他来源 - 尤其是可能对其他 nixos 新手类型的问题有帮助的来源?

答案1

使用 nixos为 Ubuntu grub 添加菜单项configfile (hd,....)/boot/grub/grub.cfg。参考:http://www.gnu.org/software/grub/manual/grub.html#configfile

然后在 nixos grub 设备中使用 device = "nodev"。这仍将生成 grub 配置,但不会安装 grub。这样,ubuntu 和 nixos grub 都可以更新。

答案2

这不是我的问题的“唯一”答案,但它是一种解决方法,并且太长而不能作为评论。

我使用 Ubuntu Live CD 下载了 Boot-Repair 并修复了 grub.cfg,这样我就可以启动到 Ubuntu 了。然后我启动到 Ubuntu,挂载 Nixos 分区并查看 Nixos Default 的条目。我将其复制到 Ubuntu 端的 /etc/grub.d/40_custom。我必须添加第一行set root=(hd0,1)。这是因为我的 Nixos 安装在 /dev/sda1 上。您的条目需要根据 Nixos 分区的位置进行定制。

保存并关闭文件后,我运行grub-mkconfig -o /boot/grub/grub.cfg以使用 Nixos 条目重新创建 grub 配置。现在,当我重新启动时,菜单中会显示 Nixos 默认选项,我可以启动到 Ubuntu 或 Nixos。此解决方案的不便之处在于每次升级 Nixos 时都需要手动更改自定义条目,然后重新生成 grub.cfg,但至少它确实允许从单个 grub 菜单访问这两个条目。

相关内容