Grub:Windows 10 无法启动(无效签名)

Bru*_*aer 4 boot grub2 dual-boot uefi

我已经使用 Ubuntu 好几天了(工作),今天早上我注意到我的 Windows 10 无法启动了。当我选择:

Windows Boot Manager (on /dev/sda2)
Run Code Online (Sandbox Code Playgroud)

我得到:

error: invalid signature.
Run Code Online (Sandbox Code Playgroud)

我的双启动设置工作了好几个月,我不知道它是怎么坏的。到目前为止,只有 Ubuntu 可以正常启动。

我尝试了很多东西,比如从 Windows 安装介质运行通常的引导修复命令。

bootrec.exe /fixmbr
bootrec.exe /fixboot
bootrec.exe /scanos
bootrec.exe /rebuildbcd
Run Code Online (Sandbox Code Playgroud)

最后一个命令给出了以下错误:

The requested system device cannot be found
Run Code Online (Sandbox Code Playgroud)

所以我遵循了这些说明,但仍然没有运气。


我还尝试使用grub-customizer为 Windows 10 创建一个手动条目,其中包含以下几行:

menuentry 'Windows 10 on /dev/sda2 MANUAL' {
    insmod part_msdos
    insmod ntfs
    set root=(hd0,2)
    chainloader +1
}
Run Code Online (Sandbox Code Playgroud)

在 grub 中选择此条目会给出:

BOOTMGR missing
Press Ctrl+Alt+Del
Run Code Online (Sandbox Code Playgroud)

这是我的boot-infohttp : //paste.ubuntu.com/24947042/

Rod*_*ith 6

我看到你找到了一个解决方案,这是我要建议的几个解决方案之一。(免责声明:我维护 rEFInd,所以我不是无偏见的。)不过,我确实想提供分析以表明可能出了什么问题。另外,我有一个重要的建议可以帮助您避免未来的问题。

根据您的引导修复输出,您的第一个磁盘(/dev/sda112 GiB 磁盘)使用 GPT,具有EFI 系统分区 (ESP),并且在其 ESP 上具有 Windows 和 Ubuntu (GRUB) EFI 模式引导加载程序。此磁盘上似乎安装了 Windows。您还有第二个磁盘,/dev/sdf一个 932 GiB 磁盘,它使用 MBR 分区并具有 Windows 和 Ubuntu 分区。看起来这个磁盘上安装了 Ubuntu。

通常,分区表类型(GPT 与 MBR)与计算机启动方式相关——EFI/UEFI 模式与 GPT 和 BIOS/CSM/传统模式与 MBR。这条规则也有例外,但它是一个有用的起点,尤其是对于 Windows。因为您的计算机同时具有 GPT 和 MBR 磁盘,这会造成一些歧义;但看起来 Windows 最初是从 GPT 磁盘以 EFI 模式启动的。由于过去一切正常,我进一步假设 Ubuntu 也安装在 EFI 模式下;但是 Ubuntu 安装从 ESP 启动/dev/sda到 MBR上的实际安装/dev/sdf。这是完全合法的;然而,由于某处脚本中的假设,它可能会导致问题。这就是我开始超越相当安全的推理进入纯粹推测领域的地方。特别是,我的猜测是您在 Ubuntu 中进行了软件更新,最终破坏了 GRUB 启动 Windows 的能力。有时会发生这种情况,尤其是在 Windows 快速启动和/或休眠功能处于活动状态时。这些功能可能会导致文件系统损坏,从而使 Windows 引导加载程序似乎暂时或永久消失或出现故障。因此,必须禁用这些功能,我建议您这样做。有关这样做的说明,请参阅此处此处

然后,您通过执行专为 BIOS 模式 Windows 安装设计的恢复操作加剧了问题。这会将 BIOS 模式的 Windows 引导加载程序放在 的第一个扇区中/dev/sda,等等。鉴于 rEFInd 有效,至少这些尝试没有进一步损害任何东西,只是增加了无用的残留物。

无论如何,安装 rEFInd 绕过了现在是 GRUB 配置的哈希,从而使事情正常进行。如果您对 rEFInd 感到满意,不妨继续使用它。另一种方法是尝试修复 EFI 模式的 GRUB 安装。引导修复通常可以做到这一点,尽管您的计算机奇怪的 MBR 和 GPT 组合,以及 EFI 模式和 BIOS 模式 GRUB 安装的痕迹,可能会混淆该工具。因此,除非您对 rEFInd 非常不满意,否则最好遵循格言“如果它没有坏,就不要修复它”。不过,我强烈建议您在 Windows 中禁用快速启动和休眠;即使 rEFInd 现在可以同时启动 Ubuntu 和 Windows,如果这些功能处于活动状态,它们将来可能会导致新的问题。


Bru*_*aer 2

问题解决了,我使用 .deb 包文件安装了rEFInd 。现在一切正常!