Come determinare se un particolare sistema Ubuntu in esecuzione è stato avviato tramite EFI / UEFI o BIOS?
Come determinare se un particolare sistema Ubuntu in esecuzione è stato avviato tramite EFI / UEFI o BIOS?
Risposte:
Il modo più semplice è verificare se /sys/firmware/efiesiste. Non viene visualizzato se si è avviato utilizzando il BIOS tradizionale.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
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
...
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 .
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.