安装两个完全相同且具有全盘加密功能的 Linux 系统 - 第二个系统会覆盖 EFI 条目

安装两个完全相同且具有全盘加密功能的 Linux 系统 - 第二个系统会覆盖 EFI 条目

免责声明:我在网上看到过一些类似的帖子,答案建议重新安装 grub 可能会有帮助。我试过了(见下文),但对我来说问题仍然没有解决。

我想设置两个 Debian 11 系统,每个系统都在一个单独的 LUKS 容器中。在第二次安装后,我意识到启动菜单中没有出现新的启动选项即第二次安装必须覆盖第一次安装创建的条目(默认情况下这些选项被称为:Debian通过以下方式启动垫片(安全启动)和德比安用于直接启动蛴螬(没有安全启动))。

经过一番思考,我觉得这是有道理的——因为两个安装都是 Debian,它们的 EFI 条目(即启动菜单中的标签,可在 PC 启动时按 F11 键访问) 必须具有完全相同的名称。此外,由于第一个系统安装在完全加密的分区上,第二个安装程序无法知道这一点,因此它只是继续重新安装 grub,覆盖所有与 EFI 相关的配置。

结果第一个系统无法启动。

我尝试启动第二个系统并 chroot 到第一个系统。然后我重新安装了 grub,并选择了一个--bootloader-id不同于默认名称的名称(即Debian德比安):

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Debian1

这在一定程度上有所帮助 -Debian1添加了启动项并/boot/efi/EFI/Debian1创建了目录。更重要的是,就我有限的知识而言,一切似乎都井然有序 - 两个 EFI 目录都包含自己的 grub.cfg 文件,这些文件指向正确的加密卷 - 我手动检查了这一点。尽管如此,选择Debian1在启动时仍然加载第二个较新的系统。

我将非常感激帮助使这两个系统能够正常启动。


更新:

  1. 我在以下网址找到了一些有关引导加载程序链式加载/双启动两个 Linux 操作系统的信息:Gentoo 维基建筑维基。这(通过自定义 grub 菜单项链式加载另一个 grub 实例)可以看作是一种解决方案,但与我想要的相去甚远,因为即使链式加载加密的 grub 有效(我还没有尝试过),它也需要两个密码才能进入内部 grub。

  2. 经过一段时间的尝试,我发现重新安装 grub 会产生可启动的系统仅当我没有指定自定义 --bootloader-id,否则我会被转到 grub 控制台。这背后的原因是什么?


编辑:

  1. 扩展了关于我认为第二次安装后发生的事情的段落
  2. 在 Arch 和 Gentoo Wiki 页面上添加了有关自定义菜单条目的信息。
  3. --bootloader-id添加了有关选项的信息

相关内容