配置双启动 Ubuntu 14.04 和 Windows 10 时出现“错误:签名无效”

use*_*001 7 partitioning boot grub2 dual-boot uefi

在我的笔记本电脑上安装 Windows 10 升级后,它破坏了 grub 启动管理器,我只能在 Windows 10 中启动。我使用带有该boot-repair工具的 live cd 修复了启动管理器,但它只能识别 Ubuntu 分区,而不是窗户一。

所以我编辑了/etc/grub.d/40_custom文件并添加了以下内容:

menuentry "Windows 10" {
    set root='(hd0,3)'
    chainloader +1
}
Run Code Online (Sandbox Code Playgroud)

运行后sudo update-grub2,我在启动菜单中有一个条目,但分区没有加载。它给出了以下错误:

Error: Invalid signature.
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

有谁知道如何克服这个错误?

我最近的引导修复转储在这里:http : //paste.ubuntu.com/11965327/,我想引导的分区是这个:

sda4: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Windows/System32/winload.exe
Run Code Online (Sandbox Code Playgroud)

Rod*_*ith 9

您的安装有一些特点:

  • 您的计算机有两个 Windows 恢复环境分区,/dev/sda1以及/dev/sda5. 我的猜测是一个来自您以前的 Windows 安装,另一个来自新安装,但我不能肯定。我怀疑这种重复本身是否会给您带来任何问题;我提到它只是因为它是机器更改历史的标志,而这些更改可能既是问题的原因,又使找出问题所在变得困难。
  • 您的EFI 系统分区 (ESP)/dev/sda4. 这是完全合法的,但不寻常;ESP 通常为/dev/sda1/dev/sda2。ESP 包含 EFI 模式引导加载程序和相关文件。我的预感是 ESP 是在机器历史的后期创建的——也许它曾经只是 Ubuntu,然后你安装了 Windows,它在这个不寻常的位置创建了 ESP。
  • 启动信息脚本输出无法识别 ESP 上的任何 EFI 启动加载程序。我怀疑它们确实存在,但脚本省略了这些条目。(我不时看到这种情况发生。) OTOH,如果这些文件丢失,则意味着 Windows 未能安装其引导加载程序。Ubuntu 也可能如此。但见下文....
  • 您的磁盘使用GUID 分区表 (GPT),这意味着 Windows 将仅在 EFI 模式下安装到该磁盘并从该磁盘启动;但有证据表明在 BIOS 模式下安装了 GRUB,即标准的 Ubuntu 引导加载程序。这种混搭意味着您无法从这台计算机上的 BIOS 模式 GRUB 启动 Windows。可能是您也有一个 EFI 模式的 GRUB 并且一直以这种方式启动;或者您可能已经使用计算机的内置启动管理器在操作系统之间切换(通常通过在启动时按 Esc、Enter 或功能键来访问)。

此时,最好的办法是为 Linux 安装 EFI 模式引导加载程序。有两种方法可以做到这一点,它们相对安全且简单。如果您首先输入固件并完全禁用任何选项以使用 BIOS、CSM 或传统模式进行引导,则两者都能发挥最佳效果。(这是同一事物的三个术语。)有时这些选项的表述方式不同——您必须启用EFI 或 UEFI 支持。完成后,请执行以下两项操作之一:

  • 方法 1:启动您的 Ubuntu 安装盘,通过查找/sys/firmware/efi目录确保您已在 EFI 模式下启动(如果存在,则您已在 EFI 模式下启动),安装boot-repair包并运行它。这应该通过安装 EFI 版本的 GRUB修复您的安装。这通常有效,但有时无效。我知道您已经运行了 Boot Repair,但我怀疑您是在 BIOS 模式下运行它的,这当然意味着它会安装 BIOS 模式的 GRUB,这对于启动 Windows 是无用的。
  • 方法 2:如果您还没有这样做,请在您的固件中禁用安全启动。然后,您可以从我的rEFInd 引导管理器的 CD-R 或 USB 闪存驱动器版本下载并准备引导介质启动它; 它应该为您显示一个菜单,其中至少包含一个适用于 Windows 和 Ubuntu 的选项。测试这些以确保您可以启动两个操作系统,然后启动 Ubuntu。此时,您可以安装 rEFInd Debian 软件包或 PPA。(或者,您可以安装 GRUB 的 EFI 版本。)此时您可能能够重新启用安全启动,但您可能需要跳过一些额外的环节才能使其工作。

应该不需要重新安装 Ubuntu,也可能不需要重新安装 Windows。Ubuntu 的 BIOS 模式和 EFI 模式安装是相同的,除了引导加载程序(和相关分区 - 但您已经拥有处理这两种模式的分区)。

  • 理论上,输入 `sudo efibootmgr -o 0001,0002` 应该会让你的系统默认启动 GRUB。在实践中,一些 EFI 损坏了,这是行不通的。有时 [这个程序](http://askubuntu.com/questions/235567/windows-8-removes-grub-as-default-boot-manager) 解决了这个问题,但其他时候你需要一个丑陋的 hack,如上所述[我的这个页面。](http://www.rodsbooks.com/efi-bootloaders/installation.html#alternative-naming) (2认同)