EFI shell 是否足够灵活以循环引导条目?
Is the EFI shell flexible enough to loop over boot entries?
我正在尝试编写一个 EFI shell 脚本来删除所有引导条目(如 bcfg dump boot
中给出),但不知道有多少提前存在。
该语言提供了一个循环结构,模仿了 Microsoft 的 shells:
for var in <set>
...
endfor
...但我不清楚是否有合理的方法将引导条目的数字标识符从 bcfg dump
获取到 <set>
。
此时(UEFI Shell v2.1 和 UEFI v2.50)无法使用 UEFI Shell 解析 bcfg
输出。
UEFI Shell 脚本中唯一支持的解析方法是使用 parse
命令,它需要 Standard-Format Output
(似乎是 CSV)。不幸的是,只有 7 个命令可以通过使用 -sfo
标志作为参数来生成 SFO
。支持的命令有:ls
、map
、memmap
、date
、dh
、devices
、drivers
.
可以通过编写模仿 bcfg behavior. I managed to do that and sample code can be found here 的简单 C 应用程序来删除所有启动选项。
请注意,在某些情况下,删除所有启动选项可能很危险,并可能导致硬件处于不可恢复的状态。确保你知道自己在做什么。
我正在尝试编写一个 EFI shell 脚本来删除所有引导条目(如 bcfg dump boot
中给出),但不知道有多少提前存在。
该语言提供了一个循环结构,模仿了 Microsoft 的 shells:
for var in <set>
...
endfor
...但我不清楚是否有合理的方法将引导条目的数字标识符从 bcfg dump
获取到 <set>
。
此时(UEFI Shell v2.1 和 UEFI v2.50)无法使用 UEFI Shell 解析 bcfg
输出。
UEFI Shell 脚本中唯一支持的解析方法是使用 parse
命令,它需要 Standard-Format Output
(似乎是 CSV)。不幸的是,只有 7 个命令可以通过使用 -sfo
标志作为参数来生成 SFO
。支持的命令有:ls
、map
、memmap
、date
、dh
、devices
、drivers
.
可以通过编写模仿 bcfg behavior. I managed to do that and sample code can be found here 的简单 C 应用程序来删除所有启动选项。
请注意,在某些情况下,删除所有启动选项可能很危险,并可能导致硬件处于不可恢复的状态。确保你知道自己在做什么。