![为什么 Grub 在我的系统上安装了多次?](https://linux22.com/image/198891/%E4%B8%BA%E4%BB%80%E4%B9%88%20Grub%20%E5%9C%A8%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AE%89%E8%A3%85%E4%BA%86%E5%A4%9A%E6%AC%A1%EF%BC%9F.png)
背景
我的系统上安装了 Win10、Manjaro 和 Artix。然而,Manjaro 和 Artix 都有自己的 grub 安装。目前,不存在任何问题,但我更愿意安装更多发行版进行测试,而无需额外安装 grub。没有任何图形安装工具询问我是否已经安装了 grub 或者是否不想安装 grub。
问题
为什么每个发行版都有自己的 grub 安装?我怎样才能避免这个问题?
答案1
GRUB 可以通过多种不同的方式安装,并且不同发行版之间还没有标准化。
由于 PC 系统架构的各种复杂性,设置一个功能已知的引导加载程序本身就非常困难。尝试使用具有未知功能的未知版本的 GRUB(它是否支持软件 RAID?LVM?哪种 LUKS 加密方法?)一直是发行版维护者不愿意解决的问题。当不是特定 GRUB 安装的“所有者”的操作系统安装了内核更新时,它需要知道更新 GRUB 配置的正确过程,以调整其自己的引导条目以匹配实际可用的内核版本,这当有多个发行版使用相同的 GRUB 时,这一点就很重要了。
随着 的systemd
介绍systemd-boot
,它包括一个方案,允许每个发行版以程序可读的方式指定其所需的内核和 initramfs 文件以及启动选项。这被称为引导加载程序规范,例如,RHEL 8 的 GRUB 现在使用相对较新的blscfg
GRUB 模块来读取这些规范并在启动时动态构建启动菜单,而不是依赖于预配置的菜单。
如果该规范得到大多数主要发行版的支持,它将为解决“一个 GRUB 具有多个操作系统”问题开辟道路。时间会证明它是否会成功。