/ / Ist die EFI-Shell flexibel genug, um Boot-Einträge zu durchlaufen? - Uefi

Ist die EFI-Shell flexibel genug, um Boot-Einträge zu durchlaufen? - Uefi

Ich versuche, ein EFI - Shell - Skript zu schreiben, das alle Starteinträge löscht (wie in bcfg dump boot), ohne vorher zu wissen, wie viele es gibt.

Die Sprache bietet ein Schleifenkonstrukt, das sich an den Shells von Microsoft orientiert:

for var in <set>
...
endfor

... aber ich bin mir nicht sicher, ob es eine vernünftige Möglichkeit gibt, die numerischen Bezeichner der Starteinträge zu ermitteln bcfg dump in die <set>.

Antworten:

3 für die Antwort № 1

In diesem Moment (UEFI Shell v2.1 und UEFI v2.50) gibt es keine Möglichkeit zum Parsen bcfg Ausgabe über UEFI-Shell.

Die einzige unterstützte Methode zum Parsen in UEFI-Shell-Skripten ist die Verwendung von parse Befehl, die erfordern Standard-Format Output (Es scheint CSV zu sein). Leider können nur 7 Befehle generiert werden SFO, durch die Nutzung -sfo als Parameter kennzeichnen. Unterstützte Befehle sind: ls, map, memmap, date, dh, devices, drivers.

Das Entfernen aller Startoptionen kann durch das Schreiben einer einfachen C-Anwendung erreicht werden, die dies imitiert bcfg Verhalten. Ich habe das geschafft und Beispielcode kann gefunden werden Hier.

Beachten Sie, dass das Entfernen aller Startoptionen in einigen Fällen gefährlich sein und zu einem nicht behebbaren Zustand Ihrer Hardware führen kann. Stellen Sie sicher, dass Sie wissen, was Sie tun.