Wie kann ich feststellen, ob ein bestimmtes Ubuntu-System mit EFI / UEFI oder BIOS gestartet wurde?
Wie kann ich feststellen, ob ein bestimmtes Ubuntu-System mit EFI / UEFI oder BIOS gestartet wurde?
Antworten:
Am einfachsten ist es, zu überprüfen, ob /sys/firmware/efivorhanden ist. Es wird nicht angezeigt, wenn Sie mit dem herkömmlichen BIOS gestartet haben.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
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
...
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 .
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.
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)