Достаточно ли гибка оболочка EFI, чтобы перебирать загрузочные записи?

Я пытаюсь написать сценарий оболочки EFI, который удаляет все загрузочные записи (как указано в bcfg dump boot), не зная заранее, сколько из них существует.

Язык предоставляет циклическую конструкцию, созданную по образцу оболочек Microsoft:

for var in <set>
   ...
endfor

... но мне непонятно, есть ли разумный способ получить числовые идентификаторы загрузочных записей из bcfg dump в <set>.


person Charles Duffy    schedule 24.11.2015    source источник


Ответы (1)


На данный момент (оболочка UEFI v2.1 и UEFI v2.50) нет возможности анализировать вывод bcfg с помощью оболочки UEFI.

Единственный поддерживаемый метод анализа в сценарии UEFI Shell — использование команды parse, для которой требуется Standard-Format Output (похоже, это CSV). К сожалению, только 7 команд могут генерировать SFO, используя флаг -sfo в качестве параметров. Поддерживаемые команды: ls, map, memmap, date, dh, devices, drivers.

Удаление всех параметров загрузки может быть достигнуто путем написания простого приложения C, которое имитирует bcfg. Мне удалось это сделать, и пример кода можно найти здесь.

Обратите внимание, что удаление всех параметров загрузки может быть опасным в некоторых случаях и может привести к невосстановимому состоянию вашего оборудования. Убедитесь, что вы знаете, что делаете.

person Piotr Król    schedule 13.12.2015