这是一个非常简短的问题,但有一个很长的介绍,我提供了背景信息。
长篇介绍
我最近一直在尝试在我的 Acer V11 Touch 上安装 AMD 64 位版本的 Ubuntu 14.04.1。这台笔记本电脑最初配备的是 Windows 8.1,但我很高兴立即将其删除。
启动是在 EFI 中完成的,启用了安全启动,并通过 pendrivelinux 创建的 USB 中的标准安装选项进行。一切似乎都很顺利,安装也正确,但后来我遇到了一个在 Ubuntu 安装中似乎很常见的问题:我没有启动选项;我的电脑直接启动到我用于安装的 USB,F12 启动菜单没有显示其他可能的选择。经检查,我似乎有正确的分区(一个 FAT32 efi 分区、一个带有 Ubuntu 的 ext4 分区和一个 Linux 交换分区)。
我尝试了所有标准修复方法,包括启动修复来恢复 GRUB,但都没有成功。我成功地在 Legacy BIOS 中安装了 32 位版本,但这感觉像是在逃避。我刚刚做的似乎有效,就是进入 F2 BIOS 菜单,在“安全”选项卡下,输入一个名为“选择受信任的 UEFI 文件进行执行”的选项,我按照选项“HDD0”、“EFI”、“ubuntu”以及最后的“shimx64.efi”进行操作。我现在有一个似乎可以加载 Ubuntu 的启动选项!
简短问题:
我的问题是,我选择 shimx64.efi 作为可信任的执行程序究竟做了什么?这真的是解决我问题的正确方法吗?我是否会因为这种不正当的做法而在未来受到任何影响?如果这就是我所寻找的解决方案(看起来是这样),为什么它不会自动发生?
答案1
shim 的作用是什么:
shimx64.efi
是一个相对简单的程序,它提供了一种在安全启动处于活动状态(或开启状态)的情况下启动计算机的方法。在这样的计算机上,未签名的版本将GRUB
无法启动,并且无法使用 Microsoft 的密钥对 GRUB 进行签名,因此 shim 弥补了这一缺陷并添加了自己的安全工具,这些工具与安全启动的工具相似。实际上,shim 会将自身注册到固件中,然后启动GRUB
。
我为什么需要它?
您的计算机附带 UEFI,这是 BIOS 的更新替代品,所有搭载 Windows 8 或更高版本的计算机均附带该固件。在这些计算机中安全启动UEFI 中默认启用此选项。这是 Microsoft 的要求。您可以关闭安全启动在安装 Ubuntu 之前在 UEFI 中,那么您就不需要 shim 了。
为什么它没有自动发生?
我不知道。安装程序确实将 shimx64.efi 放在了正确的位置。目前尚不清楚为什么它没有激活它。可能安装程序没有预料到安全启动已打开,因为您删除了 Windows 8.1。考虑提交错误报告垫片以便开发人员了解问题并尝试修复它。按Ctrl+ Alt+打开终端T并输入以下命令来提交错误报告:
ubuntu-bug shim
有关垫片的更多详细信息,请参阅grubx64 和 shimx64 有什么区别?
希望这可以帮助