我的计算机中有两个内部 SSD,其中一个当前安装了 Ubuntu 20,分区如下:
nvme0n1
│
├─nvme0n1p1
│ vfat EFI
├─nvme0n1p2
│ ext4 /boot
└─nvme0n1p3
crypto LUKS
└─luks-long_uuid
LVM2_m
├─vgubuntu-root
│ ext4 /
└─vgubuntu-swap_1
swap swap
这与默认引导加载程序 GRUB2 配合得很好
但我想在我的另一个驱动器上安装第二个 Ubuntu 20,并具有独立的启动分区(在 USB 拇指上)。第二个驱动器具有以下分区:
sda
├─sda1 empty (I will use that later)
│
├─sda2 empty (I will use that later)
│
├─sda3 empty (I will use that later)
│
└─sda5
crypto LUKS
└─sda5_crypt
ext4 /
我在 USB 上安装了启动分区,如下所示:
sdc
├─sdc1
│ vfat EFI
├─sdc2
│ ext4 /boot
└─sdc3
ext4 empty
当我从 live CD 安装第二个 ubuntu 时,一切都运行良好(我可以使用 USB 引导至 SSD),但是当我更新前一个 SSD (nvme0n1) 上的 grub 时,因为之前的配置已被全新安装删除,我无法再用我的 USB 启动(但我可以启动到第一个 SSD/nvme0n1)
我尝试安装第二个 ubuntu(带或不带 EFI 分区、带或不带引导加载程序)。但要点是,当我从第一个 SSD/nvme0n1 更新 grub 时,它没有检测到第二个 ubuntu(即使我安装了它,os-prober 也找不到我的第二个操作系统)
对我来说,理想的情况是将我的 EFI 和启动分区放在 USB 上,并将第二个 SSD 的其余部分放在我的计算机上,但我也可以只将启动分区放在 USB 上。
答案1
正如评论中指出的@奥德弗雷德Ubiquity 有一个微妙之处,它只在它找到的第一个 EFI 分区上安装 Grub。 A解决方法是删除主驱动器上EFI分区的esp
标志(gparted
例如)(这里我的主驱动器的EFI是nvme0n1p1
)。
然后update-grub
在里面跑步chroot环境第二个驱动器的:在我的例子中,它是sda5_crypt
安装在/mnt
(例如)实时 Ubuntu 操作系统中的未加密的 luks 设备,该设备将接收安装的引导分区(此处sdc2
带有ext4
fs)/mnt/boot
,以及将接收 EFI 分区的设备(此处sdc1
带有vfat
fs)安装在/mnt/boot/efi
.
最后设置回esp
主分区的标志(这里nvme0n1p1
)