Jak mogę sprawdzić, czy mój system został uruchomiony jako EFI / UEFI lub BIOS?


Odpowiedzi:



16

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

Przykład użycia skryptu bash na podstawie kodu wyjścia grep :

...
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 .


2
Uprościłbym to 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.
geirha

3
Jest to kruche, ponieważ nie ma gwarancji, że szukany ciąg zostanie wygenerowany przez żądaną funkcję.
Thorbjørn Ravn Andersen

1
@izx, każdy skrypt może napisać „EFI v” jako część czegoś innego. Jeśli tak się stanie na komputerze z systemem BIOS, byłby to wynik fałszywie dodatni.
Thorbjørn Ravn Andersen

2
Najlepiej nie grepować tekstu w dzienniku jądra, ponieważ może ulec zmianie. Najlepiej spojrzeć na / sys / firmware / efi
Colin Ian King

1
Chciałbym jednak wspomnieć, że jest to świetny sposób na uzyskanie wersji EFI!
Omega

0

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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.