我有一台配置为 Windows 10 和 Gentoo 双启动的笔记本电脑,我想添加 Ubuntu 安装,以便我可以进行固件更新(OEM 目前仅支持处理 Ubuntu 和 Ubuntu 衍生产品上的固件更新)。
在这种特殊情况下,我不会直接使用 UEFI 启动管理器,而是让它加载 GRUB2,因为所讨论的系统不提供带有超时的菜单选项(您必须按 F12 才能获得启动菜单,它会一直停留在那里直到您选择某些内容),并且因为我希望在某些启动选项上使用密码,而在其他启动选项上则不需要(而 Windows 就是我想要启动密码的对象之一)。我想保留此设置并将 Ubuntu 集成到其中,而不是在我想要启动 Ubuntu 时处理(糟糕的)UEFI 启动管理器界面,这反过来意味着我需要一种方法让 Ubuntu 不干扰 UEFI 启动管理器变量(每次升级到新版本时与 Windows 发生冲突已经够糟糕了,更何况还有另一个操作系统争夺控制权)。
根据我目前所见,似乎唯一的方法是执行非 EFI 安装 Ubuntu,然后手动拉入包grub-efi
(并且可能采取一些技巧来阻止efibootmgr
运行)。有没有其他方法可以做到这一点,而不需要创建自定义安装程序或自定义grub-efi
包?
答案1
您的想法是正确的,所有部分都已准备就绪,假设您不想启用安全启动(这将需要...签名版本的内核...)。只需在传统模式下安装 Ubuntu,不会触及任何 UEFI 变量,也不会创建任何 UEFI 文件/目录。重新启动 Gentoo 并运行 sudo update-grub 以在 grub 菜单中获取 Ubuntu 安装。现在您可以在 UEFI 模式下启动 Ubuntu 安装 - 它不需要另一个 UEFI grub,您已经有一个了。如果您愿意,您实际上可以添加 fstab 条目以将 EFI 分区挂载在 /boot/efi,但实际上,如果没有 grub-efi,为什么要费心呢(请注意,我有一个系统,我完全按照上述操作,但我确实添加了 fstab 条目,以防我想安装 grub-efi(我从未安装过它)..)。
我运行的系统在磁盘 1 上安装了旧版 Windows/Ubuntu,在磁盘 2 上安装了 UEFI Ubuntu。我以旧模式安装磁盘 2,手动创建一个 EFI 分区,该分区是我从另一个系统的备份中填充的。在 grub.cfg 存根中编辑一次 UUID 以获取维护的 /boot/grub/grub.cfg,第二个磁盘通过选择磁盘以 UEFI 模式启动。就您而言,您现有的安装已经处于 UEFI 模式,因此现有的 grub 可以完成所有操作。