![如何顺利启用安全启动?](https://linux22.com/image/1129062/%E5%A6%82%E4%BD%95%E9%A1%BA%E5%88%A9%E5%90%AF%E7%94%A8%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%EF%BC%9F.png)
我读这里必须启用安全启动:
但是我发现,当我启用安全启动时,它会进行更改,以便系统可以使用 UEFI 启动,但不能使用 Legacy 启动,它还会禁用 CMS。但是,当我尝试启动系统时,我得到了 3 个不同的启动项,我可以从中启动:
- ATAPI CD1: PLDS DVD-RW DS8A8SH
- ATA HDD0: TOSHIBA MK5065GSX
> PCI LAN
- LAN(3C970E7102F6) -IPv4
- LAN(3C970E7102F6) -IPv6
但无论我选择哪一个,我都只能回到该屏幕并且无法启动,那么唯一的方法是转到另一个选项卡并选择Setup,返回 BIOS 并禁用安全启动,然后说设置选项中支持 Legacy 和 UEFI(因为仅禁用安全启动不起作用)。
因此,我假设我当前唯一的操作系统 Ubuntu GNOME 15.04(64 位)不支持 UEFI 启动,只支持 Legacy。那么我能做些什么来启用安全启动?为什么它只支持 Legacy?顺便提一下,当我使用 Windows 7 时(很久很久以前,在一个遥远的星系里……),这也没用。
答案1
引导加载程序是为计算机固件编写的。这类似于为特定操作系统编写的软件。因此,您不需要“将引导加载程序转换为 UEFI”;这就像“将邮件客户端转换为 Windows”或“将照片编辑器转换为 Linux”。相反,您需要安装一个新的程序以适应所需的环境。在某些情况下,新程序可能与旧程序同名(例如 Thunderbird 或 GIMP,它们可用于 Windows 和 Linux;或 GRUB 2,它们可用于 BIOS 和 EFI)。在其他情况下,有特定于操作系统或固件的程序,例如efibootmgr
(特定于 Linux 的工具)或 rEFInd(特定于 EFI 的启动管理器)。
如果您的计算机当前正在以 BIOS/CSM/传统模式启动,那么要以 EFI 模式启动,您必须执行以下几件事:
- 将磁盘从主引导记录 (MBR)到GUID 分区表 (GPT)。此步骤可能不是严格要求的,但有些 EFI 可能比较麻烦,使用 MBR 可能需要将引导加载程序安装到备用文件名 (
EFI/BOOT/bootx64.efi
),而大多数工具默认情况下不会这样做。因此,MBR 到 GPT 的转换是可取的。这可以通过我的gdisk
程序(默认情况下安装在 Ubuntu 中)相当轻松地完成,如所述这里。 - 创建一个EFI 系统分区 (ESP)。这是 EFI 引导加载程序所在的分区。它在 BIOS 中没有完全相同的对应分区。您可能必须使用 GParted 调整至少一个分区的大小,以便为 ESP 腾出空间。我建议将其大小设为 550MiB。虽然 ESP 通常是磁盘上的第一个或第二个分区,但分区调整大小的实际情况意味着,最好将其设为最后的如果您要从 BIOS/MBR 转换为 EFI/GPT,请在磁盘上进行分区。
- 安装 EFI 引导加载程序。GRUB 2 是传统的引导加载程序,可以通过启动 Ubuntu Live CD 自动安装在 EFI 模式下并运行引导修复。启动修复还应设置与安全启动配合使用。大多数其他启动加载程序都需要经过一些额外的步骤才能与安全启动配合使用,尽管有时这并不是太糟糕——如果它检测到 Shim(用于支持安全启动的最常见 Linux 工具),我自己的重新索引将自行设置为使用安全启动。
- 重新启动并希望一切正常。所有这些都可能出错。如果您遇到问题,最好的办法是在这里和其他地方搜索解决方案,如果找不到解决方案,请在这里或其他论坛上发布新问题。
请注意,在 Linux 安装中,仅有的BIOS 模式和 EFI 模式安装之间真正关键的软件差异是引导加载程序。因此,从 BIOS 模式切换到 EFI 模式引导不需要额外的软件更改。(实际上,安装 EFI 模式 GRUB 可能会引入一些其他相关软件包,如efibootmgr
。这些确实有帮助,但对于引导来说并不重要。)与 BIOS 相比,EFI 下不需要对内核、C 库、shell、GUI 或其他核心工具进行任何更改。正如我上面所写的,分区需要调整,但这不需要任何软件更改。安全启动需要 Shim、PreLoader 或特殊的自定义设置;并且根据引导加载程序,可能需要签名的内核。
您可能从中看出,Ubuntu 应该可以很好地使用安全启动。(不过,由于 EFI 过于挑剔,偶尔也会有例外。此外,使用安全启动更容易错误配置某些东西,从而导致其崩溃。)在安全启动处于活动状态的情况下进行全新安装时,一切都应该非常透明。当您从现有的 BIOS 模式安装进行转换时,您更有可能遇到问题,因为转换工具实际上并不存在(除非您将启动修复算在内,它只完成部分工作)。因此,您最终将手动完成更多工作,这意味着更有可能错过某个步骤或犯错误。
有关 Linux 和安全启动的更多信息,请阅读我关于这个主题的主要网页,涵盖了基本原理和典型配置。如果你想真的具有自定义安全启动配置的硬核,请阅读我的关于完全控制安全启动的页面。这描述了如何配置系统以在安全启动处于活动状态但不使用 Shim 或 PreLoader 的情况下进行启动,并且以使您能够锁定 Microsoft 工具(如果您愿意的话)的方式进行启动。
答案2
安全启动是一项实用功能,可以锁定计算机以仅运行经过认证的软件。这有助于防止使用恶意或未经认证的代码启动硬件。
从微软技术网:
安全启动有助于确保您的 PC 仅使用制造商信任的固件进行启动。
这意味着 Ubuntu 固件需要经过认证才能在启用安全启动的 UEFI 系统上启动。如果我们不想要这个,我们需要禁用这个“功能”:
您可能需要禁用安全启动才能运行某些 PC 显卡、硬件或操作系统(例如 Linux 或以前版本的 Windows)。
因此,微软建议禁用 Linux 或其他未经认证的硬件或软件的安全启动。制造商可以禁用安全启动,但这对于 Windows 系统来说绝不是强制性的。
对于大多数 PC,您可以通过 PC 的固件 (BIOS) 菜单禁用安全启动。对于经过徽标认证的 Windows RT 8.1 和 Windows RT PC,需要配置安全启动以使其无法被禁用。
在这些系统上,我们可能无法禁用安全启动。
目前我们可以创建我们自己的证书能够启动,但这可能会在未来的任何时候改变,当Windows 10 Device Guard 认证流程变得更加严格。
因此,在您的机器上禁用安全启动的实现可能不完整,或者受到限制以至于不接受非 Microsoft 证书。