Wie kann ich feststellen, ob mein System als EFI / UEFI oder BIOS gestartet wurde?


Antworten:



16

Veraltet

Die folgende Antwort ist eine Methode, die möglicherweise nicht immer funktioniert.
Verwenden Sie stattdessen Colins Antwort basierend auf /sys/firmware/efi.


Es ist sehr einfach festzustellen, ob ein System in EFI gestartet wurde (oder nicht, in diesem Fall muss es sich um ein BIOS handeln):

Benutz einfach dmesg | grep "EFI v"

  • Dies wird eine Zeile wie diese zurückgeben, wenn das System von EFI gebootet wurde:

    [0.000000] EFI v2.00 von American Megatrends
  • Oder geben Sie nichts zurück, wenn dies nicht der Fall ist. In diesem Fall wurde vom BIOS gebootet

Beispiel für die Verwendung von Bash-Skripten basierend auf dem Exit-Code von grep :

...
dmesg | grep -q "EFI v" # -q weist grep an, nichts auszugeben
wenn [$? -eq 0] # Exit-Code prüfen; wenn 0 EFI, sonst BIOS
dann
    echo "Sie verwenden EFI-Boot."
  sonst
    Echo "Sie verwenden BIOS-Boot"
fi
...

Quelle: Wie Sie feststellen können, ob ein EFI-System eine Legacy-BIOS-Emulation verwendet oder nicht, sowie weitere Informationen zum Testen der EFI- und EFI-Kompatibilität sowie die Zeichenfolgen für eine Reihe von EFI-Anbietern / -Versionen finden Sie auf dieser Seite von der Ubuntu Developer Summit for Precise .


2
Ich würde das zu vereinfachen if dmesg | grep -Fq "EFI v"; then .... Es macht keinen Sinn, den [Befehl zusätzlich auszuführen, nur um auf Erfolg / Misserfolg zu testen. $?ist hauptsächlich nützlich, um nach bestimmten Fehlern zu suchen.
Geirha

3
Dies ist spröde, da nicht garantiert wird, dass die gesuchte Zeichenfolge von der gewünschten Funktion generiert wird.
Thorbjørn Ravn Andersen

1
@izx, jedes Skript kann "EFI v" als Teil von etwas anderem schreiben. Wenn dies auf einem BIOS-Computer geschieht, ist dies ein falsches positives Ergebnis.
Thorbjørn Ravn Andersen

2
Es wird empfohlen, nicht nach Text im Kernel-Protokoll zu suchen, da dies Änderungen unterliegen kann. Am besten schauen Sie sich / sys / firmware / efi an
Colin Ian King

1
Ich möchte jedoch erwähnen, dass dies eine großartige Möglichkeit ist, die EFI-Version zu erhalten!
Omega

0

Python-Code, um zu überprüfen, ob das System mit UEFI oder ROM BIOS gestartet wurde:

importieren os, sys
def main ():
    if (os.path.exists ("/ sys / firmware / efi")):
        print "\ n \ n System wird mit uefi gebootet!"
    sonst:
        print "\ n \ n System wird mit Rom-BIOS gebootet"
Main()
sys.exit (0)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.