我有一个双启动 Windows 10 和 Ubuntu 16.04、UEFI 的系统。我最近换了主板,现在系统无法从硬盘启动。
在启动过程中,会瞬间出现以下错误消息,然后出现带有闪烁光标的空白屏幕:
Failed to set MokListRT: Invalid Parameter
Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
Failed to open \EFI\BOOT\MokManager.efi - Not Found
Failed to load image \EFI\BOOT\MokManager.efi: Not Found
我可以从 Ubuntu 安装 CD 启动。从 CD 启动时,它会短暂显示错误消息:
Failed to set MokListRT: Invalid Parameter
但随后 CD 成功完成启动并且运行正常。
我已经从 CD 安装并运行了启动修复程序(来自 ppa:yannubuntu/boot-repair),但它并没有解决问题。
作为参考,以下是 boot-repair 的输出: http://paste2.org/LbDh1NB1
您可以看到其中有对“efi/clover”的引用。这是我前段时间安装的 Clover,安装在第二个硬盘上。该硬盘未连接到系统(我也尝试过在连接的情况下启动,但没有任何变化)。
如果这似乎是导致问题的可能原因,有人知道我该如何从 efi 中清除这些引用吗?现在我只想达到可以从一个硬盘驱动器启动 Ubuntu 和 Windows 的状态(我稍后会担心 Clover)。
作为参考,硬盘位于 /dev/sda,分区如下: gparted 屏幕截图
- sda1 是启动分区。
- sda2 是安装 Windows 10 的地方。
- sda7 是 NTFS 分区,用于存放我想在 Windows 和 Ubuntu 之间共享的文件
- sda8 是交换分区。
- sda9 是 Ubuntu 主分区。
- sda10 是 Ubuntu 系统分区。
如果我可以提供任何其他信息来帮助诊断问题,请告诉我。
附加信息 #1
我已删除 efi/clover 文件夹并再次运行 boot-repair。Boot Repair 的最新输出:http://paste2.org/yNV0Enaw
输出自sudo efibootmgr-v
BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001
Boot0000* EFI DVD/CDROM PcieRoot(0x0)/Pci(0x1f,0x2)/Ata(0,1,0)
Boot0001* OsLoader0000 PcieRoot(0x0)/Pci(0x1f,0x2)/Ata(0,0,0)/HD(1,GPT,83ba8348-d117-4c28-841f-7bd4d44b6190,0x800,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)
主板是 Gigabyte GA-Z68P-DS3 (rev. 2.0)。
BIOS 是 Award Modular BIOS v6.00PG。我没有看到任何涉及安全启动的选项,也没有看到任何与 Windows 和其他选项相关的选项。有关此 BIOS 版本中主菜单的一些信息:http://docplayer.net/21102511-Bios-award-v6-00pg-bios-setup-guidelines.html
附加信息 #2
我刷入了最新的库存 BIOS:技嘉 z68pds32.Ua6。
我现在看到一个名为“操作系统类型”的选项,我将其设置为“其他操作系统”。
关于“无法设置 MokListRT:无效参数”的错误现在消失了(无论是从 CD 还是硬盘启动)。不幸的是,仍然无法从硬盘启动。仍然看到其他错误消息:
Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
Failed to open \EFI\BOOT\MokManager.efi - Not Found
Failed to load image \EFI\BOOT\MokManager.efi: Not Found
答案1
我成功了。发布解决方案以防其他人遇到类似问题。感谢@oldfred 的评论,为我指明了正确的方向。
第一个问题与第一条错误消息有关:
Failed to set MokListRT: Invalid Parameter
为了解决这个问题,需要禁用安全启动。不幸的是,我的主板附带的 BIOS 版本没有此设置(至少我找不到它)。我刷入了主板制造商提供的最新版本的 BIOS。
使用最新的 BIOS 版本,我能够找到 @oldfred 提到的与安全启动等效的选项。该选项称为“操作系统类型”,正确的选择值是“其他操作系统”。这消除了启动过程中的无效参数错误。
其他错误消息是关于未找到文件:
Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
Failed to open \EFI\BOOT\MokManager.efi - Not Found
Failed to load image \EFI\BOOT\MokManager.efi: Not Found
我挂载了 /dev/sda1 并做了一些挖掘。我在文件夹 /efi/ubuntu/ 下找到了报告丢失的两个文件。我将它们复制到错误消息中提到的文件夹 (/efi/Boot/)。现在我可以无错误地启动了。