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/efi
esiste. 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.