EFI-Shell vor Windows booten

ColinMacLaren

Enthusiast
Thread Starter
Mitglied seit
28.01.2004
Beiträge
1.848
Ort
Chemnitz
Hallo zusammen,

ich habe einen Laptop mit Intel 13900HX. Leider hat Intel das Undervolting wohl mittlerweile auf Microcode-Ebene völlig weggeblockt, auch mit dem Setzen der versteckten Bios-Switches für Undervolting Protection und Overclocking Lock geht es nicht mehr.

Allerdings kann man noch per AC Loadline undervolten und das klappt ziemlich gut, bei gleicher TDP ~10% mehr Leistung. Leider ist die Einstellung nur per UEFI-Variablen-Editor erreichbar und flüchtig. Nach einem Neustart ist sie weg.

Dazu habe ich einen USB-Stick genommen, dort in den Ordner /efi/boot die EFI-Shell platziert. https://github.com/tianocore/edk2/blob/edk2-stable201903/ShellBinPkg/UefiShell/X64/Shell.efi

Von dort nutze ich setup_var.efi, um das Loadline-Setting zu ändern. Dann boote ich Windows mit der bootx64.efi der versteckten FAT32-Partition, die die Windows anlegt. https://github.com/datasone/setup_var.efi

Das Ganze lässt sich auch per Startup-Skript automatisieren.

Code:
fs0:setup_var.efi 0x132 0x5F -n CpuSetup
fs1:efi\Microsoft\Boot\bootmgfw.efi

Allerdings muss ich dafür immer noch vom USB-Stick booten.

Ich würde gern die EFI-Shell auf meine normale Boot-SSD packen und direkt beim Bootvorgang die Vios-Variable setzen und dann Windwos laden.

Kann mir jemand helfen, wie das geht? Ich vermute mit einer Linux-LiveCD und efibootmgr?

Danke
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Also grundsätzlich kannst du EFI Variablen auch aus dem laufenden System heraus bearbeiten (auch wenn Windows dafür afaik keine einfach zu bedienenden Tools mitbringt).

Wenn du dafür trotzdem ein EFI Shell Skript verwenden (oder aus sonstigen Gründen eine EFI Shell haben) willst hast du einige Optionen:
  • Manche EFI FW haben eine eingebaute EFI Shell oder fügen automatisch einen Eintrag zum Bootmenü hinzu wenn du Shell.efi im Wurzelverzeichnis der ESP („der versteckten FAT32-Partition, die die Windows anlegt“) ablegst
  • Du könntest einfach den Standard Bootloader der ESP EFI\BOOT\BOOTX64.EFI durch die EFI Shell ersetzen.
    • Momentan sollte das eine Kopie von bootmgfw.efi sein
    • Im EFI Bootmenü ist der Standardeintrag i.d.R. nach der Festplatte benannt; „Windows Boot Manager“ startet weiterhin direkt bootmgfw.efi
  • Wenn du eh Windows chainloaden willst könntest du das Ziel in der Windows Startkonfiguration auf die EFI Shell ändern
    • bcdedit /set {bootmgr} path \Shell.efi
    • Das ist allerdings ne exzellent Gelegenheit, sich ordentlich selbst in der Fuß zu schießen
Aber mal zurück zu deiner ursprünglichen Frage. Einen neuen Boot-Eintrag für die EFI Shell kannst du mit efibootmgr folgendermaßen anlegen:

lsblk --output NAME,SIZE,PARTTYPENAME
listet für alle block devices (Datenträger und Partitionen) den Namen, die Größe und den Partiononstyp auf.

Davon brauchst du den Namen des Datenträgers, auf dem sich die ESP (Typ „EFI System“) deiner Windowsinstallation befindet.
Sagen wir mal die ESP ist nvme0n1p1 auf nvme0n1:

Dann kannst du indem du
efibootmgr --create --disk /dev/nvme0n1 --part 1 --loader /Shell.efi --label EFI-Shell
als root ausführst einen neuen Entrag mi dem Label „EFI-Shell“ zum Bootmenü hinzufügen, der Shell.efi aus dem Wurzelverzeichnis der ESP startet.
Die Bootreihenfolge kannst du dann entweder im Firmware Interface anpassen, oder direkt mit
efibootmgr --bootorder 1,0

Alternativ zu efibootmgr unter Linux kannst du auch bcfg in der vom USB Stick gestarteten EFI Shell verwenden:
bcfg dump -v
gibt die aktuellen Einträge aus,
bcfg boot add 1 fs1:\Shell.efi "EFI-Shell"
fügt den Eintrag „EFI-Shell“ an 2. Stelle (beginnt bei 0) hinzu-
Siehe auch https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf Seite 96

Das geht jetzt beides davon aus, dass du Shell.efi bereits im Wurzelverzeichnis der ESP abgelegt hast.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh