我有一台东芝笔记本电脑 Portege Z930,酷睿 i7,配备 Ubuntu 16.04 (amd64) 和 Win 8 双启动。在今天的 Ubuntu 软件更新期间,系统挂起。重启后,我看到 grub shell。我从 USB 棒 (Xubuntu 14.04) 启动系统并运行 Boot Repair。日志在这里(我尝试停用 [备份并重命名 Windows EFI 文件] 选项,但没有任何区别)。现在重启后,我看到Shim UEFI 密钥管理工具。首先,它具有全屏模式,然后在计时器第一次到期后,其窗口会缩小一点(大概会缩小到 800x600 分辨率)。每次计时器到期后,Shims 的窗口都会闪烁一次并重新启动计时器。
我该怎么做才能进入 Grub 启动菜单?我在 Shim 的窗口中没有看到任何要添加的键。我必须创建一个吗?有什么方法可以避免这种情况(我不想在这上面浪费时间)?另外,我在 BIOS 中禁用了安全启动(如果此信息有帮助)。我尝试启用它,但没有看到任何变化。
答案1
对此我有两个想法:
文件系统损坏
某些 EFI 对文件系统损坏非常敏感,这可能会使它看起来像是新的 GRUB 二进制文件未正确签名。然后这会触发您显示的 MokManager 显示。(从技术上讲,显示该显示的不是 Shim,而是 MokManager。)在这种情况下,您可以通过执行以下操作来解决问题:
sudo dosfsck /dev/sda2
当然,你需要从 Ubuntu 紧急磁盘执行此操作。此外,如果你未能两个都 禁用快速启动 和 禁用休眠。因此,禁用这些 Windows 功能以防止再次发生非常重要。
还要注意,如果文件系统损坏,你可能需要重新安装 GRUB —— 但请这样做后修复文件系统问题。Boot Repair 应该能够帮助解决这个问题。
一个新的错误
可能是 Shim 和/或 GRUB 最近进行了更新,导致它在您的特定计算机上出现问题。在这种情况下,恢复到旧版本可能会有所帮助。这可能需要shimx64.efi
从另一台计算机复制二进制文件或以某种方式重新安装 GRUB。或者,如果错误在 GRUB 中,您可以完全安装另一个引导管理器。我描述了几个这一页。我没有注意到 Shim 或 GRUB 有任何最新更新,但我可能错过了一些东西。
关闭安全启动后,您可以通过以下命令创建新的启动项来完全绕过 Shim:
sudo efibootmgr -c -d /dev/sda -p 2 -l \\EFI\\ubuntu\\grubx64.efi -L GRUB
此命令告诉计算机通过(的 )grubx64.efi
分区 2 ( -p 2
)进行引导。您当前的设置通过 Shim 进行引导,这对于处理安全引导必不可少;但如果禁用该功能,则直接调用 GRUB 可以绕过任何安全引导问题(假设 GRUB 二进制文件没有问题)。如前所述,如果该二进制文件损坏,则可能会产生您看到的症状,而此过程无济于事——系统将无法通过其他方式引导。/dev/sda
-d /dev/sda
答案2
尝试再次运行启动修复,但这次确保已选中“安全启动”(在“GRUB 选项”选项卡下)。