Führen Sie EFI-Dateien / -Skripts von ISO [Boot, Virtual Media] aus

1065
raven428

Die meisten Hersteller bieten Server-Firmware-Updates nur als Dateisatz an EFI( Beispiel ). Ihre Server können jedoch (auch als externe) IP-KVM nur ISOImages als Boot-Virtual-Media verbinden. Mit diesem virtuellen Medien ist Remote-Firmware-Flash nicht möglich.

Die Server sind meistens entfernt, und niemand kann physisch darauf zugreifen, um USBFirmware-Aktualisierungen für den Flash-Stick einzufügen . Firmware-Updates dürfen nur aus der Ferne erfolgen, um den gesamten Prozess zu beschleunigen. Die Frage ist, wie ich solcheEFI Dateien von bootfähigen bis zu Firmware-Updates starten kann .ISO

Höchstwahrscheinlich gibt es keine fertige Lösung. Ich würde also gerne selbst bauen. Aber ich habe nichts in Google für den Start gefunden. Benötigen Sie ein Handbuch für den Start oder ähnliches. Möglicherweise gibt es eine Möglichkeit, ISOdiese Dateien irgendwie anzuordnen, um EFIdarauf zugreifen zu können und sie zu starten.

Ich hätte gerne eine LinuxLösung für den Build ISO.

2
Die mitgelieferte Anleitung erwähnt tatsächlich einen USB-Stick. Das von Ihnen beschriebene Problem hat jedoch nichts mit UEFI zu tun. Mit dem BIOS wäre die Situation genauso. Mir ist keine Methode bekannt, die BIOS / UEFI-Firmware remote zu flashen. GabrielaGarcia vor 6 Jahren 0
Fragen: (1) Welches Betriebssystem sind diese Remote-Server? Verwenden sie alle Windows? (2) Wie viele Server? harrymc vor 6 Jahren 0
@GabrielaGarcia. Möglich mit UEFI Capsule-Unterstützung. Viele UEFI-Firmware unterstützen jedoch noch keine Firmware-Aktualisierung mit Kapseln oder FMP und ESRT. fpmurphy1 vor 6 Jahren 0

4 Antworten auf die Frage

3
pat2015

Die folgende Lösung ist unter Linux Mint 19 64 in Virtual Machine implementiert.

Werkzeuge benötigt

GParted - GUI-Tool zum Verwalten von Partitionen. Dies ist im Allgemeinen in Live Linux CD / DVD verfügbar. Wenn Sie am Ende der Festplatte keinen freien Speicherplatz haben, müssen Sie die Größe ändern und eine kleine FAT-Partition erstellen. Wenn bereits vorhandene Partitionen verwendet werden, müssen Sie möglicherweise GParted von Live Linux CD / DVD aufrufen, damit diese Partition funktioniert.

genisoimage - Befehlszeilentool zur Verwaltung von ISOs. Wenn dies nicht verfügbar ist, installieren Sie es einfach. Dies war in Linux Mint 19 64bit problemlos verfügbar

sudo apt-get install genisoimage 

Schritt 1 - Verwenden von GParted (vorzugsweise von Live Linux CD / DVD gebootet, in diesem Fall habe ich Live Linux Mint 19 64bit verwendet). Erstellen Sie eine kleine FAT16-formatierte Partition am Ende Ihrer Festplatte. Für diesen speziellen Fall sind nur 100 MB mehr als genug. Stellen Sie sicher, dass das Format für eine so kleine Größe FAT16 und nicht FAT32 ist

Schritt 2 - Entpacken Sie die erforderlichen Dateien und kopieren Sie sie in diese FAT-formatierte Partition. Sie können einfach den Standard-GUI-Datei-Explorer in Linux verwenden. Es ist kein separater gzip-Befehl erforderlich

Schritt 3 - Erstellen Sie ein Image dieser Partition. Der Befehl hier lautet

dd if=/dev/sda3 of=/home/test/efi/fat.img 

In obigem Beispiel enthält /dev/sda3die FAT-formatierte Partition die Dateien und /home/test/efi/fat.img die generierte Image-Datei.

Schritt 4 - Jetzt erstellen wir ein bootfähiges EFI-ISO. Die Dateien selbst müssen hier nicht unbedingt bootfähig sein.

genisoimage -v -J -r -V "TEST" \ -o /home/test/myiso.iso \ -eltorito-alt-boot \ -e fat.img \ -no-emul-boot \ /home/test/efi 

Im obigen Befehl wird der BIOS-Bootloader weggelassen und wir bleiben beim EFI-Bootloader, dem alternativen. /home/test/myiso.isoist die neue ISO-Datei, die erstellt wird, /home/test/efiist der Ort der Quelldateien. Daher gibt es nichts außer dem Bootloader-Image.

Nun wird das ISO auf Linux Box erstellt. Mounten Sie das ISO als CD-Laufwerk und booten Sie Ihr UEFI-System in EFI Shell. Nun muss der Bootloader-Abschnitt einem Laufwerk in EFI Shell zugeordnet werden, und das Image darin, das den Ordner zusammen mit seinem Inhalt enthält, muss über EFI Shell zugänglich sein.

2
pat2015

Basierend auf dem, was ich am besten verstehe, schlage ich eine Lösung mit den folgenden Tools unter Windows 64-Bit-Betriebssystem vor.

  1. Imdisk_toolkit_64_bit Emulator für virtuelle Laufwerke. Laden Sie hier herunter und installieren Sie es
  2. Power ISO (Testversion sollte ausreichen, da die betreffende Datei weniger als 300 MB beträgt)

Schritte

Laden Sie obige Software unter Ihrem Windows-Betriebssystem herunter und installieren Sie sie.

Erstellen Sie zunächst mit imdisk_toolkit eine virtuelle Festplatte und hängen Sie sie an einen Laufwerksbuchstaben an. Formatieren Sie die Festplatte im FAT-Dateisystem. Eine Festplatte von ca. 50-60 MB ist für Ihre Anforderungen mehr als ausreichend, da die Dateigröße kaum <40 MB beträgt

Kopieren Sie den Inhalt Ihrer Dateien einschließlich EFI-Dateien, Flash-Dateien und der Skripts auf dieses virtuelle Laufwerk.

Erstellen und speichern Sie nun in derselben App eine .img-Datei des virtuellen Laufwerks.

Demontieren Sie das virtuelle Laufwerk. Dieser Teil der Arbeit ist erledigt.

Öffnen Sie nun Power ISO und erstellen Sie einen neuen leeren ISO-Container.

Gehen Sie zu Menü Aktion -> Boot -> Startinformationen hinzufügen

und wählen Sie die zuvor erstellte .IMG-Datei aus.

Jetzt ist Ihre ISO-Datei virtuell bootfähig (sie erstellt einen FAT-Container als Startdatei, obwohl sie in Wirklichkeit nicht booten wird, da Ihre Dateien selbst keine Bootloader sind.)

Speichern Sie die Datei als .ISO und brennen Sie sie auf eine CD / DVD.

Auf diesen Bootloader-FAT-Container muss in EFI Shell zugegriffen werden können. Er muss sich selbst als barrierefreies Laufwerk in EFI Shell einbinden.

Ich habe dies auf einer virtuellen Maschine getestet. Hoffe, das funktioniert wie erwartet auf echter Hardware.

Sieht nett aus. Ist es möglich, dasselbe von Linux-Box aus auszuführen? raven428 vor 6 Jahren 0
Ich habe eine separate Antwort für Linux Box hinzugefügt. Probieren Sie es aus und lassen Sie mich wissen, ob es für Sie funktioniert. pat2015 vor 6 Jahren 0
0
Anon

Vielleicht können Sie die Firmware-Updates als PXE-Boot-Images erstellen (obwohl Sie darauf achten müssen, nicht in einer Reflash-Schleife zu enden). Die meisten Server mit EFI können bei Bedarf auch auf das PXE-BIOS-Boot zurückgreifen.

Wenn Sie mit Ihrem IP-KVM-Gerät USB-Festplatten anschließen können, können Sie Ihr "Image" einfach starten, indem Sie es so anhängen.

Ein besserer Weg könnte sein, den Server von einem echten, vollständig gebooteten Betriebssystem aus zu flashen (und einige Hersteller stellen betriebssystemspezifische Dienstprogramme zur Verfügung).

Schließlich verlangen einige Serveranbieter eine Summe von zusätzlichem Geld, um das BIOS des Servers über das Netzwerk (z. B. über IPMI) flashen zu lassen. Möglicherweise befinden Sie sich in diesem Szenario ...

0
harrymc

Es gibt andere Lösungen als das bootfähige ISO-Format, obwohl dies einige Konstruktionsarbeiten erfordert. Die zu wählende Lösung hängt stark von der Art der Remote-Computer hinsichtlich Hersteller und Betriebssystem ab.

Für Computer, die alle vom gleichen Hersteller stammen, bieten die meisten großen Hersteller Produkte an, die auf die Verwaltung von Rechenzentren abzielen, die meistens kostenlos sind. Wenn dies der Fall ist, hier einige Links:

Unter Windows kann PowerShell zum Aktualisieren des BIOS verwendet werden. Die erforderlichen Dateien müssen zuerst auf den Remote-Computer übertragen werden. Beispiele für solche Skripte sind:

Für jede Lösung sind Untersuchungen und Tests erforderlich, von denen keine einfach oder absolut garantiert ist.