我的第一个 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 配置将被加载,并且您将能够启动第二个操作系统,就像您直接启动到第二个硬盘一样。
我对这个主题的完整笔记是这里。