Jak ustalić, czy określony działający system Ubuntu został uruchomiony przy użyciu EFI / UEFI lub BIOS?
Jak ustalić, czy określony działający system Ubuntu został uruchomiony przy użyciu EFI / UEFI lub BIOS?
Odpowiedzi:
Najłatwiej jest sprawdzić, czy /sys/firmware/efiistnieje. Nie pojawia się, jeśli uruchomiłeś system przy użyciu tradycyjnego systemu BIOS.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Przestarzałe
Odpowiedź poniżej to metoda, która nie zawsze może działać.
Zamiast tego użyj odpowiedzi Colina opartej na/sys/firmware/efi.
Bardzo łatwo jest stwierdzić, czy system został uruchomiony w EFI (czy nie, w takim przypadku musi to być BIOS):
Po prostu użyj dmesg | grep "EFI v"
Zwróci to taką linię, jeśli system został uruchomiony z EFI:
[0,000000] EFI v2.00 autorstwa American Megatrends
Lub nie zwracaj niczego, jeśli tak nie było, w takim przypadku zostało uruchomione z systemu BIOS
...
dmesg | grep -q "EFI v" # -q powiedz grepowi, aby nic nie wyświetlał
jeśli [$? -eq 0] # sprawdź kod wyjścia; jeśli 0 EFI, w innym przypadku BIOS
następnie
echo „Używasz rozruchu EFI.”
jeszcze
echo „Używasz systemu BIOS”
fi
...
Źródło: Aby dowiedzieć się, jak ustalić, czy system EFI korzysta z emulacji starszego systemu BIOS, czy nie, a także więcej informacji na temat testowania zgodności z EFI i EFI, a także ciągów znaków dla wielu dostawców / wersji EFI, zobacz tę stronę z szczyt deweloperów Ubuntu dla precyzyjnych .
if dmesg | grep -Fq "EFI v"; then .... Nie ma sensu dodatkowo uruchamiać [polecenia, tylko po to, by sprawdzić sukces / porażkę. $?jest głównie przydatny do sprawdzania określonych błędów.
Kod Python, aby sprawdzić, czy system jest uruchamiany z UEFI lub ROM BIOS:
import os, sys
def main ():
if (os.path.exists ("/ sys / firmware / efi")):
print "\ n \ n System jest uruchamiany z uefi!"
jeszcze:
print "\ n \ n System jest uruchamiany z BIOS-em ROM"
Główny()
sys.exit (0)