双重启动问题-如何为每个驱动器提供一个启动加载程序?

双重启动问题-如何为每个驱动器提供一个启动加载程序?

我正在努力实现一个简单的双启动设置,即我有两个独立的驱动器,而无需在安装第二个操作系统时断开其中一个驱动器的连接。换句话说,我希望每个驱动器都有自己的 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

感谢大家的评论!下面是我解决问题的方法:

  1. 启动进入 Ubuntu
  2. 获取我的 Ubuntu 驱动器 (/dev/sda1) 上已存在的 ESP 分区的 UUID:blkid /dev/sda1
  3. 编辑/etc/fstab,将定义行上的 UUID 替换/boot/efi为从 #2 中获得的 id。
  4. 保存文件,然后运行sudo umount /boot/efi,然后再次挂载它sudo mount -a(它将使用在fstab文件中找到的任何内容)。
  5. 安装 grub:sudo grub-install
  6. /dev/nvme0n1p2通过将该 EFI 分区(我的是)安装到某处并删除 EFI/ubuntu 文件夹来从 Windows 磁盘中删除 grub 。

瞧,现在您有一个合理的双启动设置。不过,我仍然想知道“单个 EFI 分区”设计背后的逻辑是什么,因为它对我来说毫无意义。

相关内容