我正在尝试让我的双启动(Arch+Win10)与安全启动一起使用。我跟着拱门维基,执行以下步骤。
sudo mount /dev/sda1 /boot/efi
sudo mv /boot/efi/EFI/Boot/bootx64.efi /boot/efi/EFI/Boot/grubx64.efi
sudo cp /usr/share/shim-signed/shimx64.efi /boot/efi/EFI/Boot/bootx64.efi
sudo cp /usr/share/shim-signed/mmx64.efi /boot/efi/EFI/Boot/
sudo openssl req -newkey rsa:2048 -nodes -keyout MOK.key -new -x509 -sha256 -days 3650 -subj "/CN=MOK_LENOVO_MASSIMO/" -out MOK.crt
sudo openssl x509 -outform DER -in MOK.crt -out MOK.cer
sudo openssl x509 -outform DER -in MOK.crt -out MOK.cer
sudo sbsign --key MOK.key --cert MOK.crt --output /boot/vmlinuz-linux /boot/vmlinuz-linux
sudo sbsign --key MOK.key --cert MOK.crt --output /boot/efi/EFI/BOOT/grubx64.efi /boot/efi/EFI/BOOT/grubx64.efi
sudo cp MOK.cer /boot/efi/EFI/
systemctl reboot --firmware-setup
当我启用安全启动时,系统直接启动到 Windows(在新的“shim”bootx64.efi 之后,在启动顺序中仍称为“rEFInd Boot Manager”)。
禁用 SB 让我再次进行工作重新查找,我猜这意味着 shim 已正确配置,但系统无法识别其签名密钥?维基百科和重新查找站点告诉我应该提示我使用 MOK 工具,因为使用 Microsoft 密钥签名的 Shim 无法链式加载(尚未签名)重新查找。
如何让 shim 链加载 MokManager?
编辑:我看了一下垫片源代码事实上,如果出现错误,垫片会愉快地打印它们(这不会发生)。它只是默默地启动Windows。
答案1
您必须创建您的 MOK和用它签署引导加载程序或者获得互补的 shim+bootloader 对(如“使用 shim 编译时使用的证书签名的引导加载程序”)——另请参阅 Rod 关于该主题的优秀书籍(处理安全启动,控制安全启动)以及我的UEFI SecureBoot 迷你指南如果您有兴趣帮助 Arch 获得 UEFI CA (== MSFT) 签名的垫片。
获得一个真正为你经历过这种痛苦的 Linux 发行版可能会容易得多(我知道 Fedora、SUSE、Ubuntu,丙氨酸转氨酶和 ROSA 截至今天,尽管可能还有更多)。
PS:确切的(但是无用)答案是你的垫片已经按预期工作了......