【发布时间】:2015-12-13 08:27:16
【问题描述】:
我正在尝试编写一个 EFI shell 脚本来删除所有引导条目(如 bcfg dump boot 中给出的),但不知道提前存在多少。
该语言提供了一个循环结构,模仿了微软的外壳:
for var in <set>
...
endfor
...但我不清楚是否有合理的方法将引导条目的数字标识符从bcfg dump 获取到<set>。
【问题讨论】:
标签: uefi
我正在尝试编写一个 EFI shell 脚本来删除所有引导条目(如 bcfg dump boot 中给出的),但不知道提前存在多少。
该语言提供了一个循环结构,模仿了微软的外壳:
for var in <set>
...
endfor
...但我不清楚是否有合理的方法将引导条目的数字标识符从bcfg dump 获取到<set>。
【问题讨论】:
标签: uefi
目前(UEFI Shell v2.1 和 UEFI v2.50)无法使用 UEFI Shell 解析 bcfg 输出。
UEFI Shell 脚本中唯一支持的解析方法是使用parse 命令,这需要Standard-Format Output(它似乎是CSV)。不幸的是,通过使用-sfo 标志作为参数,只有 7 个命令可以生成SFO。支持的命令有:ls、map、memmap、date、dh、devices、drivers。
可以通过编写模仿bcfg 行为的简单C 应用程序来删除所有启动选项。我设法做到了,可以在here找到示例代码。
请注意,在某些情况下,删除所有启动选项可能很危险,并且可能导致硬件状态不可恢复。确保您知道自己在做什么。
【讨论】: