【问题标题】:Grub Scripting from EFI shell从 EFI shell 编写 Grub 脚本
【发布时间】:2021-11-14 10:52:29
【问题描述】:

我设置了一个可直接进入EFI shell 的可引导 USB

我使用它来运行几个 EFI 文件,这些文件可以进行一些基本的 BIOS 配置。

毕竟,我需要在grub2 启动时运行一些命令

我需要运行命令

 "setup_var 0x13a 0x00" 

禁用内置驱动器来推送图像。

为了在 grub 从EFI 启动时运行此命令,我需要做什么? 我需要编写自己的EFI 文件吗?

我阅读了grub.cfg 并将代码隐藏在其中,但我无法通过 Windows 生成将 grub 安装到可启动 USB 的文件

我将尝试通过 unix 完成这一切,看看是否有任何改变,因为我注意到我的 windows grub 设置中的文件与 unix grub 和 GNU 文档不匹配

最终目标是创建一个可启动的 USB 驱动器,它会自动配置 BIOS/TPMSecurityKeys,重新启动,然后 PXE 启动

任何帮助或更好的想法将不胜感激 谢谢

【问题讨论】:

    标签: shell automation bootloader uefi grub


    【解决方案1】:

    所以问题是由于某种原因,我使用的 grub 版本即使在正确的位置也无法找到 grub.cfg

    我使用的解决方法是使用 rufus 创建一个可启动的 USB 到任何版本的 linux,并将“boot”和“efi”文件夹复制到只有 efi shell 的驱动器中

    一切都按照现在的方式运行

    用途:

    X:\autostart.nsh 执行所有与 efi 相关的命令并调出 grub

    X:\boot\grub\grub.cfg 执行所有 grub 相关命令

    【讨论】:

    • autostart.nsh 添加解决了我在这个答案中遇到的问题:)