Come posso sapere se il mio sistema è stato avviato come EFI / UEFI o BIOS?


Risposte:



16

deprecato

La risposta di seguito è un metodo che potrebbe non funzionare sempre.
Usa invece la risposta di Colin basata su /sys/firmware/efi.


È molto facile dire se un sistema è stato avviato in EFI (o meno, nel qual caso deve essere BIOS):

Basta usare dmesg | grep "EFI v"

  • Questo restituirà una linea come questa, se il sistema è stato avviato da EFI:

    [0.000000] EFI v2.00 di American Megatrends
  • O non restituire nulla in caso contrario, nel qual caso è stato avviato dal BIOS

Esempio di utilizzo dello script bash basato sul codice di uscita di grep :

...
dmesg | grep -q "EFI v" # -q indica a grep di non produrre nulla
se [$? -eq 0] # controlla il codice di uscita; se 0 EFI, altrimenti BIOS
poi
    echo "Stai utilizzando l'avvio EFI."
  altro
    echo "Stai usando l'avvio del BIOS"
fi
...

Fonte: per sapere se un sistema EFI utilizza o meno l'emulazione BIOS legacy, nonché ulteriori informazioni sui test per la compatibilità EFI ed EFI, insieme alle stringhe per un numero di fornitori / versioni EFI, consultare questa pagina da il vertice degli sviluppatori di Ubuntu per Precise .


2
Lo semplificherei if dmesg | grep -Fq "EFI v"; then .... Inutile eseguire il [comando in aggiunta, solo per verificare l'esito positivo o negativo. $?è utile principalmente per verificare errori specifici.
geirha,

3
Questo è fragile, poiché non esiste alcuna garanzia che la stringa cercata sia generata dalla funzione desiderata.
Thorbjørn Ravn Andersen,

1
@izx, qualsiasi script può capitare di scrivere "EFI v" come parte di qualcos'altro. Se ciò accade su una macchina BIOS, questo sarebbe un falso positivo.
Thorbjørn Ravn Andersen,

2
Meglio non grep per il testo nel registro del kernel, è soggetto a modifiche. Meglio guardare / sys / firmware / efi
Colin Ian King il

1
Vorrei tuttavia ricordare che questo è un ottimo modo per ottenere la versione EFI!
Omega

0

Codice Python per verificare se il sistema è avviato con UEFI o BIOS ROM:

import os, sys
def main ():
    if (os.path.exists ( "/ sys / firmware / efi")):
        print "\ n \ n Il sistema si avvia con uefi!"
    altro:
        print "\ n \ n Il sistema si avvia con rom bios"
principale()
sys.exit (0)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.