使用预先存在的 Windows 安装进行 UEFI 多重引导

使用预先存在的 Windows 安装进行 UEFI 多重引导

我已经阅读了一些答案和指南,包括:

我在一台 PC 上安装了预先安装的 Windows 10 (x64)。主板附带 3 类 UEFI 固件(不支持 CSM 启动)。我已禁用安全启动以进行故障排除。我的分区如下:

      Partition ###  Type              Size     Offset 
      -------------  ----------------  -------  -------
      Partition 1    System             101 MB  1024 KB
      Partition 2    Reserved            16 MB   102 MB
      Partition 3    Primary            473 GB   118 MB
      Partition 4    Primary           2052 MB   473 GB
      Partition 5    Recovery          1794 MB   475 GB                                                                     

我的理解UEFI 固件搜索 EFI 系统分区(分区 1)以查找匹配的文件: <EFI_SYSTEM_PARTITION>/EFI/BOOT/<MACHINE_TYPE_SHORT_NAME.EFI>。然后固件将“控制权移交给”固件中启动优先级最高的启动管理器(案例 1)/启动加载程序(案例 2)。案例 1 将“加载其他启动加载程序”,而案例 2 将“加载内核”,从而结束启动过程的早期部分并启动操作系统。

根据输出

bcdedit /enum

Windows 启动经理位于分区 1 上,path=/EFI/Microsoft/Boot/bootmgfw.efi这对我来说很有意义。Windows 启动装载机在分区 3 上找到path=\Windows\System32\winload.efi

这将是可以的,除了在 UEFI 固件中的启动优先级下,Windows 启动经理在分区 1 上执行同样的操作file name,这听起来是对的,但是反而Windows 启动装载机UEFI: kX650znv512GP3 NVMe Toshiba SSD,我在分区 3 上有第二个列表,其中file name: /EFI/Microsoft/Boot/bootmgfw.efi。将后者设置为第一启动优先级后,没有操作系统加载,并且我得到一个屏幕,提示缺少 BCD 文件。此外,为什么分区 3 也有/EFI/Boot/bootx64.efi /EFI/Microsoft/Boot/BootMgFw.efi /Boot/BCD /Boot/boot.sdi /Boot/bootfix.bin

我的问题是:

  • 为什么我在 EFI 系统分区(分区 1)之外有几个启动文件?
  • 为什么我的固件列出的文件似乎不是可启动文件(UEFI: kX650znv512GP3 NVMe Toshiba SSD在分区 3 上file name: /EFI/Microsoft/Boot/bootmgfw.efi)?

当我安装另一个引导时经理到分区 1(GRUB2 或 rEFInd),我希望能够在 Ubuntu 和我当前安装的 Windows 10 之间进行选择。(如果我错了请纠正我,但我不认为我需要 Windows 启动管理器,因为它所做的只是启动 winload.efi;rEFInd 或 GRUB2 应该可以完成这项任务)。rEFInd 会自动检测 Windows 10 吗,还是我必须使用 Windows 10 启动加载程序 efi 文件手动编辑它(我目前不知道会是哪一个,因为分区 3 上有很多)?

网站说 Windows 启动管理器(我假设/EFI/Microsoft/Boot/bootmgfw.efi在分区 1 上)已启动C:\Windows\System32\Boot\winload.efi

答案1

因为我终于让所有事情都正常运转了,所以我只想回答我自己的问题,这可能会帮助其他有类似问题或疑问的人。

问题 1:

似乎efi重要的文件(默认情况下)位于您的 EFI 系统分区(分区 1)上,通常在固件中显示(在 下FS0),如/EFI/Microsoft/Boot/bootmgfw.efi/EFI/Boot/bootx64.efibootx64.efi似乎只是一个引导加载程序而 bootmgfw.efi 启动Windows 启动管理器efi。如果你只安装了 1 个操作系统(Windows),那么你选择从哪个文件启动就无关紧要了,因为Windows 启动管理器如果只检测到 1 个操作系统,则菜单将不会出现。

问题2:

说实话,我还是不明白为什么/EFI/Microsoft/Boot/bootmgfw.efi如果我使用实际位于(分区 1)上的功能文件,我的固件总是会将(分区 3)添加到启动列表中bootmgfw.efi。我也不知道为什么非功能efi文件会在我的 C: 驱动器(分区 3)上。

问题 3:

就我而言,检测到了硬盘上的rEFInd每个文件,但无法启动 Windows。我不知道这是为什么。此外,在尝试启动其中一个文件时,屏幕闪烁,计算机重新启动,当我查看启动顺序(在 UEFI 固件中)时,Windows 启动管理器再次位于首位。从那时起,即使我将 rEFInd 重新放回顺序中的第一位,它也无法启动。它只会导致计算机重新启动(我并不真正关心这一点,因为我刚刚安装了 GRUB,然后除了 rEFInd 之外,一切都正常)。efiefi

tldr;有时会有多余的启动文件,Windows 10 启动管理器可能会杀死 rEFInd。这是在戴尔“BIOS”固件 1.2.2 上。

相关内容