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/efi
istnieje. 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)