如何让 GRUB 在双启动 Windows(旧版)PopOS(UEFI)下工作

如何让 GRUB 在双启动 Windows(旧版)PopOS(UEFI)下工作

我尝试让我的双启动屏幕工作了一段时间,以提供一些背景信息:

  • 我已经安装了同样的 Windows 几年了
  • 几个月前安装了 PopOs
  • 我有 2 个驱动器,Windows 位于主 SSD 上,Pop!_OS 位于 HDD 上
  • 在 BIOS 上切换启动优先级,从 Windows 更改为 Pop!_OS
  • Windows BIOS 模式为 Legacy,Pop!_OS 为 UEFI

我关注了指导但是我的 grub 不能正常工作,我尝试了不同的启动项并发现:

  • SATA6G_3:三星 SS 850 EVO 2(启动至 Windows)
  • UEFI 操作系统(SATA6G_5:东芝 DT101ACA100)(靴子到这个GRUB 屏幕
  • 弹出(SATA6G_5:东芝 DT101ACA100)(靴子流行起来!_Os)
  • Pop!_OS 20.10(SATA6G_5:东芝 DT101ACA100)(靴子流行起来!_Os)

笔记:我尝试使用sudo os-prober它来获取 Windows 的路径,但该命令没有返回任何输出(我在运行该命令之前确实安装了 SSD 驱动器)

我不知道到底发生了什么,我猜是因为 grub 和 Pop!_OS 找不到 Windows,所以我遇到了麻烦

答案1

Windows 双启动

大多数为一种固件类型安装的 Linux 引导加载程序无法 启动或链式加载其他固件类型的引导加载程序也就是说,如果 Arch 在一个磁盘上以 UEFI/GPT 或 UEFI/MBR 模式安装,而 Windows 在另一个磁盘上以 BIOS/MBR 模式安装,则 Arch 使用的 UEFI 引导加载程序无法链式加载另一个磁盘上安装有 BIOS 的 Windows。同样,如果 Arch 在一个磁盘上以 BIOS/MBR 或 BIOS/GPT 模式安装,而 Windows 在另一个磁盘上以 UEFI/GPT 模式安装,则 Arch 使用的 BIOS 引导加载程序无法链式加载另一个磁盘上安装有 UEFI 的 Windows。

唯一的例外是 Apple Mac 中的 GRUB,其中 UEFI 模式下的 GRUB 可以通过 appleloader 命令启动 BIOS 安装的操作系统(在非 Apple 系统中不起作用),而 rEFInd 在技术上支持从 UEFI 系统启动旧版 BIOS 操作系统,但并不总是在 非 Apple UEFI 系统(根据其作者 Rod Smith 的说法)

因此我的建议是:使用重新查找

流行星球-REFInd


但还有更多

但是,如果 Arch 安装在一个磁盘的 BIOS/GPT 中,而 Windows 安装在另一个磁盘的 BIOS/MBR 模式中,那么 Arch 使用的 BIOS 引导加载程序可以启动另一个磁盘中的 Windows,如果启动 加载程序本身具有从另一个磁盘进行链式加载的能力。

答案2

您可以尝试使用 Refind 作为主引导程序。默认情况下,它会自动检查所有磁盘和分区(即它可以读取的所有分区)是否有 .efi 和 vmlinux 文件。据我记得,如果您的 BIOS(UEFI)支持 Legacy/CSM 模式,它可以引导传统和 Uefi 安装的操作系统。但我认为您需要取消注释 refind.conf 文件中的选项。(有关此选项的信息位于 .conf 文件本身内,它是不言自明的)。如果您的 PC 不支持它,它会在启动期间明确告知您。

相关内容