我正在努力实现一个简单的双启动设置,即我有两个独立的驱动器,而无需在安装第二个操作系统时断开其中一个驱动器的连接。换句话说,我希望每个驱动器都有自己的 EFI 分区和引导加载程序。
我以为我可以通过在我的 Ubuntu 驱动器上创建一个 EFI 分区并选择该分区作为引导加载程序位置来实现这一点,但显然这没什么区别。这是我的情况,无论谁能帮我以最少的痛苦解决这个问题,我都会得到一块饼干和我永远的感激:
HD 1:安装了 Win11 的 Nvme 驱动器 - 当然还有带有 Windows 引导加载程序的 EFI 分区。
HD 2:一个空的 SSD 驱动器,我想使用此映像在其上安装 Ubuntu ubuntu-22.04.2-desktop-amd64.iso
:。
预期行为:
HD1 和 Win11 安装未受影响,包括 EFI 分区。
HD2 有自己的启动分区,以及 Ubuntu 根目录
系统默认启动 Windows。如果我想使用 Ubuntu,我必须进入 BIOS 并选择它。
如果我在 BIOS 中选择 Ubuntu 驱动器,我将直接启动到 Ubuntu(之后无法选择 Windows)
我为实现这一目标所做的事情:
启动到 Ubuntu 安装程序,在 HD2 中创建了 2 个分区:一个小型 EFI 分区(格式化为 FAT32)和一个用于根的主分区(格式化为 ext4)。
选择 HD2 作为引导加载程序的位置。
实际结果:
期望 #3 满足了,但期望 #1 和 #2 未满足。事实上,天知道为什么 Ubuntu 的启动在 HD1 中,这意味着 HD1 的 EFI 分区已被修改,我有一种感觉,如果我再次格式化 HD2,我将无法再次启动 Windows。
现在怎么办?我该如何以最简单的方式解决这一问题?我该如何将 Ubuntu 的启动内容移到 Ubuntu 驱动器上?我该如何安全地清除 Windows 驱动器上的所有 Ubuntu 痕迹?
如果您特别仁慈/耐心,您能否解释一下所描述的行为有何意义?在什么样的平行维度中,人们会希望两个彼此无关的驱动器紧密耦合,以至于其中一个驱动器在没有另一个驱动器的情况下停止工作?
先感谢您!
答案1
感谢大家的评论!下面是我解决问题的方法:
- 启动进入 Ubuntu
- 获取我的 Ubuntu 驱动器 (/dev/sda1) 上已存在的 ESP 分区的 UUID:
blkid /dev/sda1
- 编辑
/etc/fstab
,将定义行上的 UUID 替换/boot/efi
为从 #2 中获得的 id。 - 保存文件,然后运行
sudo umount /boot/efi
,然后再次挂载它sudo mount -a
(它将使用在fstab
文件中找到的任何内容)。 - 安装 grub:
sudo grub-install
/dev/nvme0n1p2
通过将该 EFI 分区(我的是)安装到某处并删除 EFI/ubuntu 文件夹来从 Windows 磁盘中删除 grub 。
瞧,现在您有一个合理的双启动设置。不过,我仍然想知道“单个 EFI 分区”设计背后的逻辑是什么,因为它对我来说毫无意义。