Tools zum Ändern von UEFI-Variablen in Windows / Linux?

12

Ich habe einen DELL-Computer, der Phoenix SecureCore Tiano als UEFI / BIOS verwendet. Er kann jedoch nicht konfiguriert werden, da seine UEFI-Shell und -Menüs im BIOS-Setup ausgeblendet sind.

Ich frage mich, ob es Tools gab, mit denen die UEFI-Einstellungen (z. B. Boot Items) im Benutzermodus geändert werden können. wie "efibootmgr" unter Linux.

Übrigens, da es nicht konfigurierbar ist, denke ich, dass sich der Startvorgang im Legacy-Modus befindet. Das heißt, Betriebssysteme können die vorhandene UEFI nicht erkennen, stimmt's?

Das ist also das Paradoxon: Ich muss im Nicht-Legacy-Modus booten, damit UEFI-Tools Boot-Elemente im Benutzermodus ändern können. Aber ich muss UEFI-Tools aktivieren, um zuerst Boot-Elemente zu ändern, um Nicht-Legacy-Boot zu aktivieren.

Marstein
quelle
Ich habe gerade festgestellt, dass efi vars in nvram gespeichert ist. Vielleicht hilft dieser Link: wikileaks.org/ciav7p1/cms/page_26968084.html
Marstone

Antworten:

3

EFI-Implementierungen müssen eine Möglichkeit bieten, den Startmodus (EFI vs. BIOS) zu steuern, außer natürlich für reine EFI-Implementierungen ohne BIOS-Unterstützung. Zu oft gibt die Firmware dem Benutzer jedoch nur wenig oder gar keine explizite Kontrolle über die Angelegenheit. Stattdessen versucht die Firmware, basierend auf dem Status der Festplatte auf den richtigen Startmodus zu schließen. Beispielsweise wird möglicherweise der EFI-Modus verwendet, wenn ein GPT erkannt wird, und der BIOS-Modus, wenn ein MBR gefunden wird. oder es wird möglicherweise der EFI-Modus verwendet, wenn eine EFI-Systempartition (ESP) gefunden wird, und der BIOS-Modus, wenn nicht. Möglicherweise finden Sie im Handbuch einen Hinweis darauf, was Ihre Firmware tut. Wenn nicht, müssen Sie nur experimentieren.

Beim Booten von Wechselmedien können die Regeln unterschiedlich sein, aber Sie können häufig einen Kick in die richtige Richtung geben, indem Sie nur einen Boot-Modus bereitstellen. Dies erfordert möglicherweise ein erneutes Mastering einer CD oder (einfacher) eine sorgfältige Auswahl einer CD. Wenn Sie versuchen, einen Start im EFI-Modus zu erzwingen, kann mein rEFInd und insbesondere seine bootfähige CD-Version hilfreich sein. Es startet nur im EFI-Modus und fungiert wie konfiguriert als Boot-Manager für andere EFI-basierte Starts, jedoch nicht für Starts im BIOS-Modus.

Rod Smith
quelle
Vielen Dank! Wenn ich meine Festplatte im MBR-Modus partitioniere, funktioniert es wie erwartet. Wenn ich jedoch den GPT-Modus verwende, unabhängig davon, ob es ein ESP gibt oder nicht, wird es einfach nicht gestartet und gibt den folgenden Fehler aus: "Betriebssystem nicht gefunden". Die Fehlermeldung / w-Syntaxfehler stammt sicherlich aus dem BIOS selbst, nachdem ich das BIOS-ROM rückentwickelt habe (nicht von einem Bootloader oder Bootdatensatz), sodass ich die Bootsteuerung einfach nicht im GPT-Modus übergeben kann.
Marstone
Einige EFI-basierte Systeme booten nur im BIOS-Modus, wenn sie eine MBR-Partition mit gesetztem Flag "boot" (auch bekannt als "active") erkennen. Auf einer GPT-Festplatte muss dieses Flag auf der 0xEE-Schutzpartition im MBR gesetzt werden. Sie können dazu ein Tool wie die fdisk von Linux verwenden (verwenden Sie die Option "a"). Verwenden Sie dazu keine partierten, GParted- oder anderen libparted-basierten Tools. Auf einer GPT-Festplatte haben Sie keine Kontrolle darüber, was sich im MBR befindet , und das "Boot-Flag" wird auf eine GPT- Partition angewendet. Dies bedeutet, dass der Typcode auf den einer EFI-Systempartition (ESP) festgelegt wird. .
Rod Smith
2

Ich gebe mein Dienstprogramm einfach frei, wenn jemand interessiert ist. Es bearbeitet die UEFI-Variable in Windows.

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

Aktualisiert am 25/02/2020 auf Version 1.2.
Keine Internetverbindung erforderlich.
Die Gesamtzahl der Viren meldet 6 (falsch positive) über 96, da der Code verschleiert ist.

Zibri
quelle
ES IST NICHT. Das Programm ist komprimiert und geschützt und einige Antivirenprogramme geben ein falsches Positiv ab. Es ist kein Virus.
Zibri
Für Flagger: Dieses Programm wird bei Virustotal etwas alarmierend erkannt , scheint jedoch eine generische Erkennung und eine Erkennung "potenziell unerwünschter Programme" zu sein. Es ist möglich, dass dieses Programm aufgrund seiner Funktionen den Weg in Malware-Suiten gefunden hat. Bis jedoch jemand direkt nachweisen kann, dass es sich um tatsächliche Malware handelt, ist die Antwort vorerst in Ordnung.
Mokubai
Ich habe den Quellcode nicht veröffentlicht und es schwierig gemacht, das Reverse Engineering nur durchzuführen, um die Verbreitung von Malware basierend auf meinem "einfachen" Code genau zu "verzögern" oder "zu begrenzen". Ich denke darüber nach, die Quelle freizugeben, es ist kein Geheimnis, ich wollte einfach nicht die Hauptursache für zukünftige uefi-basierte Malware sein.
Zibri
Bearbeiten: Heute auf Version 1.1 aktualisiert.
Zibri
Aktualisiert auf Version 1.2
Zibri
1

Ich habe gerade ein Dell XPS 17 (l702x) gekauft und bin daran interessiert, eine Vielzahl von Betriebssystemen mehrfach zu booten. Wenn das, was ich verstanden habe, richtig ist, verfügt der Dell über eine Art gesperrtes Phoenix SecureCore Tiano UEFI-BIOS. Nach dem, was ich gelesen habe, ist UEFI nicht direkt verwendbar (möglicherweise über ein verstecktes Menü usw., für das möglicherweise ein BIOS-Mod erforderlich ist).

Es scheint möglich zu sein, eine Phoenix-kompatible EFI-Shell mit den Open-Source- Paketen TianoCore edk2 / ShellPkg (Quelle) und edk2 / ShellBinPkg (Binär) ( GIT Repo ) zu verwenden / darauf zuzugreifen .

Ich empfehle das neuere ShellBinPkg , das das "Full Shell" -Profil von UEFI Shell 2.0 verwendet (unterstützt die meisten Befehle). Sie können eine benutzerdefinierte Shell auch mithilfe von ShellPkg neu erstellen (eigenständig erstellen oder in das OVMF-Paket aufnehmen, um eine x64-Version zu generieren) - Aufnahme der UEFI-Shell in die Linux-Distribution iso .

Die [U] EFI-Shell-Binärdatei wird so kompiliert, dass sie unabhängig von der Firmware ausgeführt wird. Dies kann getestet werden, indem die Shell auf einem FAT32-Dateisystem (USB-Stick, Festplattenpartition) abgelegt wird, das in /efi/boot/bootx64.efiIhr [UEFI] -BIOS umbenannt und anschließend gestartet wird.

Auf den Hilfetext für die Shell wird durch Eingabe zugegriffen help utilname. Nur mit helpwird eine Liste aller verfügbaren Shell-Befehle erstellt.

Hinweis: Wenn Sie die UEFI-Shell nicht direkt über die Firmware starten können, erstellen Sie ein FAT32-USB-Stick mit Shell.efi, das als (USB) /efi/boot/bootx64.efi kopiert wurde. Dieser USB sollte im Firmware-Startmenü angezeigt werden. Durch Starten dieser Option wird die UEFI-Shell für Sie gestartet. - Arch Linux übernimmt UEFI

Big Rich
quelle
das ist großartig. Ich habe das gleiche Modell l702x gekauft ;-) Ich werde es morgen versuchen! Das versteckte Menü ist meines Wissens immer noch freischaltbar. Übrigens, hast du bootx64.efi kompiliert und schon auf deinem xps getestet?
Marstone
ShellBinPkg ist eine vorkompilierte UEFI-Shell-Binärdatei. Sie sollten sie nur umbenennen und in das richtige Verzeichnis stellen müssen. Ich habe es versucht und es hat bei mir nicht funktioniert, aber ich glaube nicht, dass es die einzige verfügbare Shell ist (ich bin auch neu in diesem Bereich). Dieser Beitrag scheint einen Shell-Download anzubieten, der mit Phoenix SecureCore Tiano funktionieren sollte (siehe die Konversation.ridikulus.rat-> cfr). Lassen Sie uns wissen, wie es Ihnen geht.
Big Rich
Ich habe versucht, die EFI-Datei aus dem obigen Beitrag in /efi/boot/bootx64.efi abzulegen. Meine USB-Festplatte wurde jedoch normal gebootet (sie ist bereits bootfähig). Dann habe ich meine U-Disk in den HDD-Modus formatiert und die Fehlermeldung "Disketten oder andere Medien entfernen ..." erhalten. Ich habe dann eine Hex-Suche nach dieser Zeichenfolge Sektor für Sektor auf meiner U-Disk durchgeführt, sie existierte nicht. Die Nachricht muss aus dem Tiano-BIOS von L702x stammen. Stimmt etwas nicht für meine Operationen?
Marstone
@marstone, sorry Mann, aber ich bin selbst ein Neuling, wenn es um dieses UEFI-Zeug geht (ich bin nur in Ordnung mit meinem Google-Fu ;-)). Wurde woanders beschäftigt, sobald ich etwas Zeit habe, werde ich es selbst versuchen und dich wissen lassen, wie es mir geht. Prost, Rich.
Big Rich
Obwohl Dell jetzt ein UEFI-fähiges BIOS ( A19 ) veröffentlicht hat, hat 'capitankasar' bei notebookreview 2x modifizierte A18-Biosen ( uefi , uefi + nvida gpu ) veröffentlicht Möglicherweise auch in der offiziellen Dell-Version vorhanden. Ich habe dies selbst nicht bestätigt. Wie immer auf eigenes Risiko verwenden ;-)
Big Rich
0

In meinen Experimenten kam ich zu folgendem Schluss:

Wenn Sie einen U / EFI-Multi-Boot-USB-Stick verwenden möchten, MÜSSEN Sie:

  1. Löschen Sie alle Partitionen / löschen Sie das Laufwerk vollständig.
  2. konvertiere es in GPT;
  3. Erstellen Sie eine primäre Partition und formatieren Sie sie als Fat32.
  4. Erstellen Sie im Stammverzeichnis des Laufwerks ein Verzeichnis mit dem Namen EFI (ohne Berücksichtigung der Groß- und Kleinschreibung).
  5. Erstellen Sie im vorherigen Verzeichnis ein Unterverzeichnis namens boot (auch ohne Berücksichtigung der Groß- und Kleinschreibung)
  6. Fügen Sie dort die gewünschte .efi-Datei ein und benennen Sie sie entsprechend der Systemarchitektur um: bootx64.efi bei x64, bootia32.efi bei x86 oder bootaa64.efi bei ARM64.

Versuchte es in einem Dell Inspiron 5437 Touchscreen und funktionierte perfekt.

Eine letzte Sache: Wenn die .efi-Datei nicht mit der digitalen Signatur von Microsoft signiert ist, muss nur der sichere Startmodus unter den fw-Einstellungen deaktiviert werden. Lassen Sie den UEFI-Start- und Schnellstartmodus aktiviert.

Suchen Sie für Tests den Multi-Boot-Schlüssel Ihres OEM-Computers, bevor Sie ihn dauerhaft installieren, und wählen Sie ihn uefi: <your usb key>aus der angezeigten Liste aus.

Thiago Postio
quelle