与 Windows 10 双启动,但 Windows 10 错误

与 Windows 10 双启动,但 Windows 10 错误

我有 1 个 HDD 和 1 个 SSD:Windows 10 安装在 SSD 上,Ubuntu 和 Windows 10 安装在 HDD 上。

我以前在启动 Windows 10 (HDD) 时没有使用 grub 菜单,我猜 grub 不是主 EFI。Windows 10 更新后,我无法启动安装在 HDD 上的 Windows 10。

  • 初始化磁盘诊断并且修复失败。
  • 我使用 Rufus 通过 USB 使用了 boot-repair.iso。但未能修复。
  • 我尝试将 grub 作为主引导程序,这样我就可以选择 Windows 10 (HDD) 并使用 grub 正常启动,但是 grub 菜单中有 Windows 10 (SSD),我无法通过 grub 启动到 Windows 10 (HDD)。

我的看法是 Windows 10 (HDD) 启动文件已损坏,grub 无法识别 Windows 10 (HDD) 启动文件。换句话说,grub 无法看到 Windows 10 (HDD),但可以看到安装在 SSD 上的 Windows 10。

http://paste.ubuntu.com/24873778

注意:我使用了 2 个 Windows 10 实例,因此如果其中一个出现故障,我可以使用另一个。

答案1

你有一个复杂的设置:

  • /dev/sda使用旧的主引导记录 (MBR)方法,在其 MBR 中安装了 BIOS 模式的 Windows 引导加载程序,并且似乎同时保存了 Windows 和 Ubuntu 安装。根据其大小,我猜这就是您所指的 HDD。
  • /dev/sdb使用新的分区GUID 分区表 (GPT)系统,其 MBR 中有一个 BIOS 模式的 Windows 引导加载程序,其 上有一个 EFI 模式的 Windows 引导加载程序/dev/sdb2,其 上有一个 EFI 模式的 GRUB(Ubuntu 引导加载程序)/dev/sdb2,并且似乎保存了 Windows 安装。根据它的大小,我猜这是你的 SSD。
  • /dev/sde看起来像是一个可启动的 USB 驱动器,上面有 Ubuntu(或其他 Linux)安装程序。因此我忽略了它。
  • /dev/sdf使用 GPT 进行分区,看起来像是 NTFS 数据分区,但未安装任何操作系统。由于它似乎不是启动盘,因此我将其忽略。

这很复杂,因为 Windows 将其启动模式与其分区表类型绑定在一起:在 MBR 磁盘上,Windows 仅在 BIOS/CSM/legacy 模式下启动;而在 GPT 磁盘上,Windows 仅在 EFI/UEFI 模式下启动。您的磁盘上还同时具有 BIOS 模式和 EFI 模式的 Windows 引导加载程序。这表明 上安装了 BIOS 模式的 Windows /dev/sda,而 上安装了 EFI 模式的 Windows /dev/sdb。(我猜测 GPT 上的 BIOS 模式 Windows 引导加载程序/dev/sdb要么是上次安装遗留下来的,要么是意外安装到了错误的磁盘。)没有 BIOS 模式 GRUB 的迹象,但 上有 EFI 模式 GRUB /dev/sdb2;但 Ubuntu 的大部分似乎安装在 上/dev/sda。Ubuntu 在分区表类型和引导模式样式的链接方面不那么严格,因此 Ubuntu 配置虽然非常规,但并不令人费解。

请注意,在两种启动模式(BIOS 和 EFI)下安装的操作系统之间切换很棘手。通常,您必须使用固件的内置启动管理器,这通常很不方便。我怀疑这就是您正在做的事情;但更新破坏了某些东西;也许由于 MBR 和 GPT 磁盘的混合以及多重启动配置而导致混乱。请注意,EFI 模式 GRUB 无法重定向启动过程以启动 BIOS 模式 Windows 安装,但它可以重定向以启动 EFI 模式 Windows 安装。

上述分析的一个注意事项是,我不知道安装在 GPT 磁盘上的 ESP 上的 EFI 模式 Windows 引导加载程序是否可以引导 MBR 磁盘上的 Windows 安装。如果可以,那么我的分析可能有点偏差;您可能通过 EFI 模式 Windows 引导加载程序引导了两个 Windows 安装。如果您确定曾经可以通过 GRUB 引导两个 Windows 版本,那么这种情况可能确实发生过,但 Windows 引导加载程序更新可能以某种方式更改了 Windows 配置,从而破坏了 EFI 模式引导加载程序引导操作系统的能力。

对于如何进行维修,我有两个建议。两者都不能保证有效;事实上,它们都是不太可能的。因此,我强烈建议您备份重要数据,并准备完全重新安装无法正常工作的 Windows 安装。我的两个想法是:

  • 使用 rEFInd 重定向到 BIOS 模式启动- 我的rEFInd 启动管理器可以从 EFI 模式重定向到 BIOS 模式启动。您可以从rEFInd 下载页面,准备一个介质,然后EFI/BOOT/refind.conf在 USB 驱动器上编辑:取消注释该scanfor行并确保它hdbios是选项之一。这应该使 rEFInd 能够启动 Ubuntu、GPT 磁盘上的 Windows(通过 Windows 图标)或硬盘上的 BIOS 模式 Windows(通过灰色菱形图标)。如果这有效,您可以通过安装 Debian 包或 PPA 将 rEFInd 安装到硬盘上,对/boot/efi/EFI/refind/refind.conf(在 Ubuntu 中)进行相同的更改,并使用 rEFInd 作为您的默认启动程序。如果您通过单个 Windows 引导加载程序启动两个 Windows 版本,则此方法最有可能有用。在这种情况下,更新将 HDD Windows 更改为期望以 BIOS 模式启动,rEFInd 将执行此操作。
  • 将你的 HDD Windows 安装转换为 GPT 和 EFI 模式启动--这篇博文介绍如何将 Windows 转换为从 GPT 磁盘以 EFI 模式启动,而不是从 MBR 磁盘以 BIOS 模式启动。(新 WindowsMBR2GPT程序会以自动化的方式做同样的事情,但我完全不确定它在复杂的三重启动设置中效果如何。)如果你将此方法应用于现有的设置,它可能让第一个磁盘上的 Windows 再次启动。但请注意,系统可能会直接启动到该 Windows。您需要使用简易UEFI调整启动顺序,使 GRUB ( ubuntu) 再次成为默认启动加载程序;之后,您可能需要输入sudo update-grubUbuntu 以确保 GRUB 的菜单已得到适当更新。如果您通过固件的内置启动管理器选择 Windows 版本,则此方法最有可能有用你点击了 GRUB。在这种情况下,你可能需要为配置带来更多的一致性,这意味着将所有内容转换为从 GPT 磁盘以 EFI 模式启动。

正如我所说,这两种方法都不能保证有效,而且都可能使情况变得更糟。在 USB 闪存驱动器上尝试 rEFInd 的风险很低;如果它有效,那么将其安装到硬盘上也不太可能产生新的问题,尽管 rEFInd 安装可能会失败。将 Windows 从 BIOS 模式转换为 EFI 模式启动的风险要大得多。

答案2

在 HHD 的 /efi/boot 目录中查找 Windows 启动管理器(通常是 bootx64.efi)

如果不存在,请将其从 SSD 复制到 HDD。

更新 grub

相关内容