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

100

Come faccio a determinare se un particolare sistema operativo di Ubuntu è stato avviato utilizzando EFI / UEFI o BIOS?

    
posta Omega 11.07.2012 - 23:00

3 risposte

115

Il modo più semplice è verificare se esiste /sys/firmware/efi . Non appare se avvii l'avvio usando il BIOS tradizionale.

#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
    
risposta data Colin Ian King 12.07.2012 - 20:11
16
  

Deprecato

     

La risposta sotto è un metodo che potrebbe non funzionare sempre.
Invece usa la risposta di Colin basata su /sys/firmware/efi .

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

Usa solo dmesg | grep "EFI v"

  • Ciò restituirà una riga come questa, se il sistema è stato avviato da EFI:

    [ 0.000000] EFI v2.00 by American Megatrends
  • O non restituire nulla se non lo fosse, nel qual caso è stato avviato dal BIOS

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

...
dmesg | grep -q "EFI v"    # -q tell grep to output nothing
if [ $? -eq 0 ]      # check exit code; if 0 EFI, else BIOS
then
    echo "You are using EFI boot."
  else
    echo "You are using BIOS boot"
fi
...
  

Origine: per sapere se un sistema EFI utilizza o meno l'emulazione legacy-BIOS, oltre a ulteriori informazioni sui test per la compatibilità EFI ed EFI, insieme alle stringhe per un certo numero di venditori / versioni EFI, vedere questa pagina dal Summit per sviluppatori di Ubuntu per precisione .

    
risposta data ish 11.07.2012 - 23:36
1

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

import os,sys
def main():
    if(os.path.exists("/sys/firmware/efi")):
        print"\n\n System is booted with uefi!"
    else:
        print"\n\n System is booted with rom bios"
main()
sys.exit(0)
    
risposta data Shruti B 11.10.2015 - 11:18

Leggi altre domande sui tag