ubuntu - 如何从 grub2 代码中运行 shim?

标签 ubuntu bootloader uefi grub2

我是新手。我正在尝试从 grub 启用 UEFI 安全启动。我决定使用 shim 来验证内核的签名。 Grub 可以通过 UEFI 进行验证。

我已经从 Ubuntu 的 grub git 存储库中提取了补丁。 Grub 使用 grub_efi_locate_protocol()函数定位垫片,目前无法找到垫片并返回NULL .

我有以下查询:

  • 我应该放在哪里 shim.efi二进制(我已经把它放在/boot分区)
  • grub_efi_system_table 在哪里变量被填充,grub_efi_locate_protocol 如何使用它?

  • 谢谢

    最佳答案

    我能够解决这个问题。执行 shim 时,它会安装 shim 协议(protocol)。仅当启用安全引导时才会安装 Shim 协议(protocol)。我试图在没有安全启动的情况下使用 shim 协议(protocol),因此 grub 无法找到 shim 协议(protocol)。垫片的完整解释在这里
    https://mjg59.dreamwidth.org/19448.html

    关于ubuntu - 如何从 grub2 代码中运行 shim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44305308/

    相关文章:

    linux-kernel - 如何获取 U-boot 的启动日志

    linux - 从 RaspberryPi3 上的 U-boot 获取 SD 卡序列号/oemid

    c - 如何在 EFI 图形模式下使用文本?

    multithreading - 多线程BIOS

    python - 如何使用 Ubuntu 在 Docker 中持久化 'ln'

    apache - 可以在 IIS 之外托管带有 .NET 核心的 ASP.NET vNext 吗?

    bootloader - 在STM32 F072上如何跳转到软件中的bootloader(DFU模式)?

    uefi - EFI 应用程序能否在 BDS 阶段之前自动加载和执行?

    c++ - 获取错误流浪 ‘\342’ 和 ‘\200’ 和 ‘\214’

    linux - 谁尝试访问 root@