• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]BIOS-Einträge

josef-wien

Ultimate Guru
Die UEFI-Spezifikation definiert unter anderem Variable. Wie diese physisch gespeichert sind, ist dem jeweiligen UEFI überlassen. Das Lesen und Schreiben solcher Variablen ist im UEFI selbst (sofern es eine derartige Funktion anbietet), in einer UEFI-Shell (die nicht jedes UEFI zur Verfügung stellt, aber dann meistens auf der EFI-Systempartition nachinstalliert werden kann) oder in einem im UEFI-Modus (also über ein Programm auf der EFI-Systempartition) gestarteten Betriebssystem möglich.

Wenn Dein UEFI keine Möglichkeit bietet, bleibt Dir noch ein im UEFI-Modus gestartetes Live-System.

P. S. UEFI ist nicht "umständlich", sondern gerade im Umfeld mehrerer installierter Linux-Distributionen die bessere Wahl. Wenn Linux und Windows verwendet werden, sollten alle Systeme im selben Modus installiert werden, da ein Wechsel zwischen UEFI-Modus und "BIOS-Modus" nur durch einen Neustart des PC möglich ist (GRUB 2-EFI kann und darf kein im "BIOS-Modus" installiertes Windows starten, GRUB 2 [ohne EFI] kann und darf kein im UEFI-Modus installiertes Windows starten).
 
A

Anonymous

Gast
wschmock schrieb:
wenn eine Installation-Software etwas in das NVRAM schreiben kann muss folglich eine Adresse geben mit der das geht. wer kann mir diese Adresse nennen die da verwendet wird ?
Wenn du etwas in den Links gelesen hättest, welche hier schon gepostet wurden.......
Ich muss dich leider enttäuschen, du hast immer noch UEFI und zwar sitzt der auf dem Systemboard und den bekommst du ohne Entlöthilfe auch nicht runter. Die "Legacy Mode" oder "CMS-Mode" ist eine Simulation des UEFI für die alten BIOS Bootmethode, also etwas zusätzlich noch oben draufgesetzt was im UEFI noch die alte Boot-Variante simuliert. UEFI läuft deshalb unten drunter ganz normal weiter, und wird auch vom BS genutzt um verschiedene Dinge an der Hardware einzustellen und auszulesen. Im normal kompiliertem Linux-Kernel sind also die Unterstützung dazu aktiv.
Also solltest du vom Linux aus auch deine UEFI Booteinstellungen und ähnliches sehen. Die UEFI-Schnittstelle liegt unterhalb von /sysfirmware/efi
Code:
 localhost:/sys/firmware/efi # ls -l
total 0
-r--r--r--  1 root root 4096 Apr 19 10:17 config_table
drwxr-xr-x  2 root root    0 Apr 15 11:46 efivars
drwxr-xr-x  3 root root    0 Apr 15 13:47 esrt
-r--r--r--  1 root root 4096 Apr 19 10:17 fw_platform_size
-r--r--r--  1 root root 4096 Apr 19 10:17 fw_vendor
-r--r--r--  1 root root 4096 Apr 19 10:17 runtime
drwxr-xr-x 17 root root    0 Apr 15 13:47 runtime-map
drwxr-xr-x  2 root root    0 Apr 15 13:47 secret-key
-r--------  1 root root 4096 Apr 19 10:17 systab
drwxr-xr-x 65 root root    0 Apr 15 13:47 vars
Hier unter efivars und vars in den Unterverzeichnissen dazu wirst du UEFI-Variablen dazu finden. Allerdings sind das keine nomalen Variablen, sondern jede Variable beinhaltet einiges an zusätzlichen Eingenschaften, die hier auch Teil der Variable sind, und hier auch als eigene Datei angezeigt werden. Und was du hier siehst ist nur ein "mount" von dem was im NVRAM des UEFI-Bios liegt.
Die Bootvarialen sind für dich von Interesse.
Code:
localhost:/sys/firmware/efi/vars # cat  Boot00*/data
fopensuse�����*�I����=�=�8\EFI\OPENSUSE\GRUBX64.EFI�`Grub�����*�I����=�=�2\EFI\OPENSUSE\GRUB.EFI�VEFI-Shell�����*�I����=�=�(\EFI\SHELLX64.EFI�`opensuse-secureboot�����*�I����=�=�2\EFI\OPENSUSE\SHIM.EFI�
und die kann man von Linux und mit zusätzlichen Tools auch von Windows auch ändern oder löschen.

Dazu muss man aber im ersten Schritt erst mal akzeptieren, das UEFI auch noch da ist, auch wenn man es nicht haben will und einfach ignoriert.

robi
 

josef-wien

Ultimate Guru
robi schrieb:
/sys/firmware/efi gibt es nur dann, wenn Linux im UEFI-Modus gestartet wurde (und der Kernel-Parameter noefi nicht verwendet wurde). Ein im "BIOS-Modus" gestartetes Linux hat das nicht, und es kann auch nicht nachträglich aktiviert werden.
 
A

Anonymous

Gast
josef-wien schrieb:
Ein im "BIOS-Modus" gestartetes Linux hat das nicht, und es kann auch nicht nachträglich aktiviert werden.
Ich kann es im Moment nicht selbst testen, aber ich dachte das lässt sich dennoch problemlos mounten solange der Kernel das efivarfs-Modul kennt.
Code:
localhost:~ # ls  /lib/modules/$(uname -r)/kernel/fs/efivarfs*
efivarfs.ko

Code:
mount -t efivarfs none /sys/firmware/efi/efivars
und dann sollten auch die Tools wie efibootmgr die damit arbeiten, funktionieren.


robi
 
OP
W

wschmock

Hacker
hallo, sys/firmware/efi ist nicht vorhanden. efibootmgr(8) - Linux man page
Displaying the Current Settings (must Be Root).
Code:
root@k4l:/# efibootmgr BootCurrent: 0004 BootNext: 0003 BootOrder: 0004,0000,0001,0002,0003 Timeout: 30 seconds Boot0000* Diskette Drive(device:0) Boot0001* CD-ROM Drive(device:FF) Boot0002* Hard Drive(Device:80)/HD(Part1,Sig00112233) Boot0003* PXE Boot: MAC(00D0B7C15D91) Boot0004* Linux 
bash: Syntaxfehler beim unerwarteten Wort `('
root@k4l:/#
 
manzek schrieb:
Gräfin Klara schrieb:
Das könnte helfen weil im selben NVRAM-Segment. Sicher bin ich mir aber nicht.
Das wäre mir neu, dass das Ändern des PW auch andere NVRAM-Einträge ändert.

Die Zellen in einem Flash können nur in Blöcken und Pages gelesen und beschrieben werden.
D.h. es wird beim Ändern eines Eintrags ein ganzer Bereich in den RAM gelesen,
im RAM geändert und bei Option "Änderungen Speichern" der gesamte Block verifiziert und in das Flash zurückgeschrieben.
*-secure und Password liegen in derselben Page. Da dieses *-secure im vorliegenden Fall offensichtlich eine Leiche ist,
kann es durchaus sein, dass die Verifizierung es als solche erkennt, entnimmt und bereinigt in das Flash schreibt.
So meine Idee - ohne Gewähr.
manzek schrieb:
So weit ich aus eigener Erfahrung weiß, lassen sich die Einträge nur durch einen kompletten Reset des BIOS löschen.
Also durch Entfernen der Batterie und Kurzschließen der Anschlüsse.
In der Vergangenheit gab es verschiedene Kombinationen der Speicherhaltung, z.B. EPROM oder Flash + RAM mit Batterie.
Das ist auf neuen boards nicht mehr gegeben. Auf diesen wird alles im Flash abgelegt und der braucht keine Batterie.

Exkursion:
Dieses EFI ist ja ein kleines OS und enthält sogar einen TCP/IP stack. Wenn man bedenkt, dass das Powermanagement
auf modernen boards das chipset auch im abgeschalteten Zustand weiterhin speist und somit dieses OS im UEFI in der
Lage ist - selbst wenn PC abgeschalten - eine Netzwerkverbindungen aufzubauen, dann bezeichne ich diesen Zustand als
völlig unakzeptabel! Es gibt nicht den geringsten Grund, diese Funktionalitäten in einem Bereich zu implementieren,
der sich der Kontrolle des Users entzieht. Die Absurdität dieser Netzwerkfunktionen im EFI ergibt sich aus der
Tatsache, dass es schon lange MBR's gibt, die den Bootvorgang über Netzwerk unter BIOS sowieso können,
z.B. PXE für iSCSI. Wozu das alles im EFI? Das ist die Frage!
Verkauft wird das dem user als "Advanced" und als "Sicherheit", doch genau das Gegenteil ist wahr.

Natürlich kann man das Abschalten aber leider nicht in der dem user zugänglichen Konfiguration. Da braucht es schon
eine Menge Einsatz und Wissen, um diese Funktionen dem EFI zu entnehmen bzw. den Zugriff darauf zu verhindern.
Für einen "normalen Anwender" ist das unmöglich.
So sieht das heutzutage aus. "Entfernen der Batterie und Kurzschließen" wird wohl wenig bewirken.

Gruß
Gräfin Klara
 

josef-wien

Ultimate Guru
robi schrieb:
Ich kann es im Moment nicht selbst testen
Wenn sich der PC im "BIOS-Modus" befindet (und auch, wenn im UEFI-Modus mit dem Kernel-Parameter noefi gestartet wird), weigert sich der Kernel standhaft, das Modul efivarfs zu laden.
__________________________________________________


wschmock schrieb:
Was soll das Beispielergebnis aus der mapage als (natürlich formal falscher) Eingabebefehl?
 
OP
W

wschmock

Hacker
hallo.
Was soll das modifizierte Zitat aus der mapage?
das Zitat ist nicht modifiziert, 1:1 kopiert.
Code:
root@k4l:/# mount -t efivarfs none /sys/firmware/efi/efivars
mount: /sys/firmware/efi/efivars: mount point does not exist.
root@k4l:/# ls  /lib/modules/$(uname -r)/kernel/fs/efivarfs*
efivarfs.ko
man kann in /sys directories nicht anlegen.
Code:
root@k4l:/lib/modules/4.19.0-16-amd64/kernel/fs/efivarfs# modprobe ./efivars.ko
modprobe: FATAL: Module ./efivars.ko not found in directory /lib/modules/4.19.0-16-amd64
root@k4l:/lib/modules/4.19.0-16-amd64/kernel/fs/efivarfs# insmod ./efivars.ko
insmod: ERROR: could not load module ./efivars.ko: No such file or directory
Die Zellen in einem Flash können nur in Blöcken und Pages gelesen und beschrieben werden.
wenn man eine Adresse des NVRAM hat kann das mit dd auslesen, die Einträge löschen, und zurück schreiben.
 
A

Anonymous

Gast
josef-wien schrieb:
Wenn sich der PC im "BIOS-Modus" befindet (und auch, wenn im UEFI-Modus mit dem Kernel-Parameter noefi gestartet wird), weigert sich der Kernel standhaft, das Modul efivarfs zu laden.
okay, ich hab's gerade auch im Netz gefunden, dann hilft wohl zB "efi=runtime" als zusätzlicher Kernelparameter beim booten und das dann mit dem Mount nochmal zu versuchen. Das wir jetzt aber schon ganz schön umständlich, :???:

oder doch von Windows aus, https://www.easyuefi.com/index-us.html die Free Trial sollte reichen, das ist kein Hexenwerk damit einen Eintrag zu entfernen.
https://linux-club.de/wiki/opensuse/Datei:EasyUEFI-0.png

robi
 

josef-wien

Ultimate Guru
robi schrieb:
Bist Du sicher, daß der Parameter nicht nur dazu dient, den "RT-patch" https://www.spinics.net/lists/linux-rt-users/msg19979.html / https://www.spinics.net/lists/linux-rt-users/msg19980.html für den zu startenden Bootvorgang (teilweise) zu deaktivieren? Bei einem im "BIOS-Modus" laufenden Linux nützt er jedenfalls nicht. Und ich glaube nicht, daß die UEFI-Implementierung von Microsoft so mies ist, daß Änderungen in einem im "BIOS-Modus" laufenden Windows möglich sind.
__________________________________________________


wschmock schrieb:
mit dd auslesen, die Einträge löschen, und zurück schreiben
Vergiß Deine Träume, es müssen die definierten Schnittstellen verwendet werden. Akzeptiere:
josef-wien schrieb:
Wenn Dein UEFI keine Möglichkeit bietet, bleibt Dir noch ein im UEFI-Modus gestartetes Live-System.
 
OP
W

wschmock

Hacker
hallo, eine Linux-live-Variante mit UEFI habe ich nicht gefunden. die live-Systeme enthalten kein UEFI.
 
Nimm eine siduction Live-CD. Die hat sowohl UEFI wie auch Legacy an Bord, sprich es ist abhängig von der Einstellung des Motherboards welche Varainte genutzt wird.
 

susejunky

Moderator
Teammitglied
Hallo wschmock,
wschmock schrieb:
hallo, eine Linux-live-Variante mit UEFI habe ich nicht gefunden. die live-Systeme enthalten kein UEFI.
bitte höre auf, solche NICHT zutreffenden Verallgemeinerungen hier zu präsentieren.

Seit 2014 besitze ich nur noch Hardware mit UEFI und alle Systeme sind so konfiguriert, dass sie im UEFI-Modus starten. Dieses LIVE-System

https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-KDE-Live-x86_64-Current.iso

(wie auch schon viele andere vor ihm) startet auf allen meinen Systemen problemlos im UEFI-Boot-Modus.

Viele Grüße

susejunky
 
OP
W

wschmock

Hacker
hallo. auf der live-DVD vom Link ist kein UEFI und lässt sich auch nicht auf der Commandline ergänzen. im BIOS ist Lgacy und UEFI aktiviert. ich kann eine live-Version mit UEFI nicht finden.
 
BeastXXL schrieb:
Ich habe oS 15.2 parallel zu Win10 nach dieser Anleitung installiert:
http://jens-mueller.org/erfahrungsberichte/dualboot_opensuse422_win10.html (geht auch mit 15.2)

Hallo BeastXXL,

danke schön für diesen Link. Den Artikel habe ich mit Interesse gelesen. In verschiedenen Foren ist die Problematik zu finden; Linux erfolgreich Installiert aber kann nicht gebootet werden.

Dieser Artikel wird vielen Usern behilflich sein.

Vielen Dank :thumbs: :thumbs:

Mit freundlichen Grüssen

Heinz-Peter
 

josef-wien

Ultimate Guru
wschmock schrieb:
im BIOS ist Lgacy und UEFI aktiviert.
Dann zeigt Dir ein ordentliches UEFI in seinem Bootmenü das optische oder USB-Medium zweimal an, und Du mußt den richtigen Eintrag auswählen. Ansonsten deaktivierst Du "legacy" und startest neu, dann gibt es nur einen Eintrag.
__________________________________________________


Heinz-Peter schrieb:
konnte ich nicht finden
https://linux-club.de/forum/viewtopic.php?p=795331#p795331 (unbeabsichtigt entstandene Kaperung)
 

susejunky

Moderator
Teammitglied
Hallo wschmock,
wschmock schrieb:
... auf der live-DVD vom Link ist kein UEFI und lässt sich auch nicht auf der Commandline ergänzen.
ich habe den Verdacht, dass der unzufrieden stellende Verlauf dieses Beitrags daher kommt, dass bestimmte Begriffe von den einzelnen Beteiligten unterschiedlich verwendet werden.

In meinem Verständnis ist Unified Extensible Firmware Interface (UEFI) die Software, die in einem nicht flüchtigen Speicher (z.B. ROM / EPROM) auf der Systemplatine eines Rechners untergebracht ist. Sie wird mit der Systemplatine ausgeliefert und kann ggf. auch (mit vom Hersteller der Systemplatine bereitgestellten Aktualisierungen) aktualisiert werden. Das UEFI hat die Aufgabe, nach dem Einschalten die Hardware-Komponenten des Rechners - wie z.B. Speicher, Speichermedien, Eingabe-/Ausgabe-Geräte, usw. - zu initialisieren und dann den Start eines Betriebssystems einzuleiten. Während des Betriebs unterstützt das UEFI das Betriebssystem beim Zugriff auf die Hardware-Komponenten des Rechners.

Das Verhalten des UEFIs kann (in aller Regel) vom Benutzer konfiguriert werden. Dazu muss nach dem Einschalten (oder einem Reset) eine bestimmte Taste (z.B. "Entf", "F11", ...) gedrückt gehalten werden, damit ein Menü mit den einstellbaren Optionen angezeigt wird.

Leider benutzen viele Hersteller in diesen Konfigurationsmenüs immer noch den Begriff BIOS, obwohl das (angesichts der funktionalen Eigenschaften der Software) nicht korrekt ist. Die Systemplatine meines Desktop-Rechners (MSI MS-7918) ist ein solches unrühmliches Beispiel. Obwohl sie funktional über ein UEFI verfügt, wird in den Konfigurationsmenüs stets nur der Begriff "BIOS" verwendet.


wschmock schrieb:
... im BIOS ist Lgacy und UEFI aktiviert.
Das UEFI meiner oben genannten Systemplatine verfügt ebenfalls über diese, meines Erachtens "sehr unglücklich", Einstellung. Sie bedeutet (zumindest bei meinem UEFI), dass zunächst versucht wird im "Legacy-Modus" ein Betriebssystem zu starten. Erst wenn kein Betriebssystem im "Legacy-Modus" gestartet werden konnte, wird versucht ein Betriebssystem im "UEFI-Modus" zu starten.

Wenn sich Dein UEFI ebenso verhält wie das meinige, dann könnte das die Ursache sein, warum die LIVE-Systeme bei Dir stets im "Legacy-Modus" gestartet werden. Um ein LIVE-System im UEFI-Modus zu starten, solltest Du also Dein UEFI (welches Du als BIOS bezeichnest) umstellen von "Legacy+UEFI" auf nur "UEFI".

Damit wir zukünftig einheitliche Begriffe verwenden, empfehle ich Dir dringend, die folgenden Artikel zu lesen.

https://de.wikipedia.org/wiki/Booten
https://de.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
https://de.wikipedia.org/wiki/BIOS

Viele Grüße

susejunky
 
OP
W

wschmock

Hacker
hallo, wenn ich von UEFI and Legacy auf nur UEFI aktiviere dann wrd efi voon derlive-Version installiert.
Code:
efibootmgr -v
EFI variables are not supported by this system.
ich finde nichts wie man Einträge im NVRAM löschen kann.
 
wschmock schrieb:
hallo, wenn ich von UEFI and Legacy auf nur UEFI aktiviere dann wrd efi voon derlive-Version installiert.
Ich kann Dir nicht ganz folgen. Was meinst Du mit: wenn ich von UEFI and Legacy auf nur UEFI aktiviere dann wrd efi voon derlive-Version installiert. :???:

In dem BIOS/EFI Chip ist die Firmware fest eingebrannt also brauch die nicht installiert werden.

Also nach der Umstellung auf UEFI sollte Windows und Linux dann nicht booten wenn die Betriebssysteme ein BIOS erwarten.

Was passiert nach der Umstellung auf UEFI?
Welches System bootet dann oder auch nicht?


Die Konsoleausgabe deutet auf eine BIOS Installation.
Code:
efibootmgr -v
EFI variables are not supported by this system.


wschmock schrieb:
ich finde nichts wie man Einträge im NVRAM löschen kann.
Wie sieht mit den BIOS/UEFI Fotos aus, kannst Du die zeigen?

Hilfreich wären auch die Ausgaben:
Code:
parted -l
und
Code:
fdisk -l
 
Oben