Grub 未检测到第二个磁盘上的加密 Ubuntu

Grub 未检测到第二个磁盘上的加密 Ubuntu

我的第一个 nvme 驱动器上安装了 Ubuntu 20.04,它位于加密分区内。现在,我在第二个 nvme 驱动器上安装了 Kubuntu 20.04,使用实时安装程序并为这个新安装也选择了加密。

安装完成后,我进入 ubuntu 并运行,update-grub以便 grub 能够看到新安装的 kubuntu,但这并没有发生。Grub 无法看到新的操作系统。

我敢打赌发生这种情况是因为实时安装程序/boot在第二个驱动器上创建了一个分区并且它期望系统从该分区启动,但我不知道如何启动 kubuntu。

我尝试过但没有效果的方法:

  • 强制启动第二个驱动器(从 BIOS)
  • 追赶(os-prober跟随fschk -y本指南
  • 使用 grub-customizer
  • 重新安装 kubuntu

我下一步该做什么?如何为 Kubuntu 加密分区创建 grub 条目?

这里您可以找到 的输出boot-info。更准确地说,nvme1是我安装 Ubuntu 的驱动器(我从中运行命令),而nvme0是我安装 Kubuntu 的驱动器。

答案1

对我有用的是向 grub 菜单添加一个自定义条目,它将加载第二个操作系统的 grub 配置。

这对我适用于 ubuntu 20.04。

注意:此方法直接从第二个操作系统的启动分区加载 grub.cfg。这与链式加载另一个 grub 不同。要使此方法有效,两个操作系统中使用的 grub 应该在一定程度上兼容,并且两者都应该通过一些唯一标识符(如 uuid)来识别磁盘。

编辑/etc/grub.d/40_custom以包含:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Other - grub' --class gnu-linux --class gnu --class os $menuentry_id_option 'other-<uuid of boot partition of secondary OS>' {
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root  <uuid of boot partition of secondary OS>
  else
    search --no-floppy --fs-uuid --set=root <uuid of boot partition of secondary OS>
  fi
  configfile /grub/grub.cfg
}

您可以使用以下命令获取所有分区的 UUID

$ ls -l -a /dev/disk/by-uuid

然后更新 grub(所有这些都将从您的第一个操作系统开始完成):

sudo update-grub

如果成功,则在启动时您应该有另一个名为“其他 - grub”的菜单项,当您选择它时,第二个操作系统的整个 grub 配置将被加载,并且您将能够启动第二个操作系统,就像您直接启动到第二个硬盘一样。

我对这个主题的完整笔记是这里

相关内容