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/efi
vorhanden 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)