Windows 未显示在启动菜单中,Debian

Windows 未显示在启动菜单中,Debian

我主要运行 MX Linux,偶尔需要启动到 Windows。今天,我尝试了,但 grub 中缺少 windows。

我安装os-prober并确认etc/default/grub显示GRUB_DISABLE_OS_PROBER=false。我运行sudo update-grub并重新启动,但 grub 中仍然没有 Windows。

回到 MX Linux,如果我运行os-prober输出,则输出/dev/sda4:MX 21.1 Wildflower (21.1 ):MX:linux未找到 Windows,但 Windows 安装在同一个 SSD 上。

我对如何继续感到非常困惑。有什么意见吗?

编辑:我已经跑了bootinfoscript。所以结果很清楚,我安装了两次 MX Linux,每次安装在不同的 SSD 上,以及一个 Windows 10 实例

引导信息脚本结果

答案1

Windows 仅允许使用 GPT 分区的系统磁盘进行 UEFI 引导,而仅允许使用 MBR 分区的磁盘进行传统 BIOS 引导。

您的sda系统采用 GPT 分区,但sda4启用了旧版 BIOS 引导标志。并且您链接的 bootinfoscript 检测到i386-pc安装在sda.

两者sda都有sdbEFI 系统分区(简称 ESP),但\EFI\Microsoft\Windows\bootmgfw.efi在其中任何一个上均未检测到 Windows UEFI 启动管理器 ( )。

看起来您的系统最初配置为 GPT 启动,然后您在旧版 BIOS 模式下启动安装程序时安装了 MX 的第二个副本(无论是意外还是出于无知),因此它在 GPT 上安装了旧版 BIOS 样式的引导加载程序 -分区的磁盘。而且您的 BIOS 目前显然更喜欢传统启动而不是 UEFI。在您的一次 MX 安装尝试中,您可能意外地允许安装程序格式化sda1包含 Windows UEFI 引导加载程序的 ESP。

如果您的 BIOS 有一个设置允许您将当前的“先传统,然后 UEFI”引导策略更改为“仅 UEFI”,请将其设置为“仅 UEFI”以避免将来出现这样的混乱。这可能会导致您的系统引导至 MX 安装,sdb2而不是根文件系统位于 的当前 MX sda4

如果无法更改 BIOS 的引导策略,则必须找到一种方法来确定 BIOS 菜单显示的哪些引导目标是 UEFI,哪些是旧版,并且从此时起仅使用 UEFI 引导目标。

由于 Windows UEFI 引导加载程序显然已被破坏,因此需要重建它及其配置。如果你启动在 UEFI 模式下从 Windows 10 安装介质并使用其“修复启动”功能,它应该会自动执行正确的操作。但您可能希望sdb在执行此操作时暂时断开连接或禁用,因此 Windows 将被迫选择正确的磁盘来重建 UEFI 引导加载程序。 (众所周知,Windows 10 安装程序有时对于如何选择用于安装 UEFI Windows 引导加载程序的磁盘有一些奇怪的想法。)

之后,您应该能够进入 Windows - 但不一定能进入您的 MX 安装。下一步是使您的(可能是最新的)MX 安装恢复正常sda4

如果 MX Linux 具有与 Debian 类似的救援模式,请从 MX 安装介质启动在 UEFI 模式下,在 GRUB 引导菜单中选择救援模式,选择区域设置和键盘,然后救援模式就会启动:它会自动搜索现有的 MX 安装,并让您选择其中一个进行安装。挑选sda4。自动安装后,它会询问您是否激活网络接口。说是的。然后它会给你一个 root shell 并建议chroot用于访问已安装的安装的命令。使用建议的命令。现在,您将在安装中有效地处于仅命令提示符模式sda4,并且可以开始修复它。

首先,删除软件包grub-pcgrub-pc-bin并安装efibootmgrgrub-efi-amd64、 ,grub-efi-amd64-bin也许还可以安装grub-efi-amd64-signedshim-signed(如果您认为可以启用安全启动)软件包来代替它们。然后跑grub-install /dev/sda

此后,您的 BIOS 启动菜单现在应该包含指示要启动的操作系统名称的项目:Windows Boot Manager对于 Windows,可能还有涉及 MX Linux 的项目。将“MX Linux”引导项作为您的主要引导目标,您应该已准备就绪。

您还应该efibootmgr -v以 root 身份运行来查看 UEFI NVRAM 引导变量,并学习理解其输出(这并不难,但它对于 UEFI 来说是全新的,并且没有真正的传统 BIOS 等效项)。

有时刷新 BIOS 可能会擦除这些启动变量,这可能会导致您的系统再次仅启动到 Windows。但如果您有efibootmgr -v打印输出和 Linux 启动介质,您将能够很快修复它。

相关内容