La respuesta a continuación es un método que no siempre funciona. En su lugar, use la respuesta de Colin basada en /sys/firmware/efi.
Es muy fácil saber si un sistema se inició en EFI (o no, en cuyo caso debe ser BIOS):
Solo usa dmesg | grep "EFI v"
Esto devolverá una línea como esta, si el sistema se arrancó desde EFI:
[0.000000] EFI v2.00 por American Megatrends
O no devuelva nada si no fuera así, en cuyo caso se arrancó desde BIOS
Ejemplo de uso de script bash basado en el código de salida de grep :
...
dmesg | grep -q "EFI v" # -q decirle a grep que no muestre nada
si [$? -eq 0] # comprobar el código de salida; si 0 EFI, si no BIOS
entonces
echo "Estás utilizando el arranque EFI".
más
echo "Estás utilizando el arranque del BIOS"
fi
...
Fuente: para saber si un sistema EFI está utilizando la emulación de BIOS heredada o no, así como más información sobre las pruebas de compatibilidad con EFI y EFI, junto con las cadenas de varios proveedores / versiones de EFI, consulte esta página en la Cumbre de desarrolladores de Ubuntu para Precise .
Yo simplificaría eso a if dmesg | grep -Fq "EFI v"; then .... No tiene sentido ejecutar el [comando además, solo para probar el éxito / fracaso. $?es principalmente útil para verificar errores específicos.
geirha
3
Esto es frágil, ya que no hay garantía de que la cadena buscada sea generada por la característica deseada.
Thorbjørn Ravn Andersen
1
@izx, cualquier script puede escribir "EFI v" como parte de otra cosa. Si eso sucede en una máquina BIOS, esto sería un falso positivo.
Thorbjørn Ravn Andersen
2
Lo mejor es no buscar texto en el registro del kernel, está sujeto a cambios. Lo mejor es mirar / sys / firmware / efi
Colin Ian King
1
Sin embargo, me gustaría mencionar que esta es una excelente manera de obtener la versión EFI.
Omega
0
Código de Python para verificar si el sistema se inicia con UEFI o ROM BIOS:
import os, sys
def main ():
if (os.path.exists ("/ sys / firmware / efi")):
print "\ n \ n ¡El sistema se arranca con uefi!"
más:
print "\ n \ n El sistema se inicia con la BIOS de rom"
principal()
sys.exit (0)
Respuestas:
La forma más fácil es verificar si
/sys/firmware/efi
existe. No aparece si arrancaste usando el BIOS tradicional.fuente
Es muy fácil saber si un sistema se inició en EFI (o no, en cuyo caso debe ser BIOS):
Solo usa
dmesg | grep "EFI v"
Esto devolverá una línea como esta, si el sistema se arrancó desde EFI:
O no devuelva nada si no fuera así, en cuyo caso se arrancó desde BIOS
Ejemplo de uso de script bash basado en el código de salida de grep :
fuente
if dmesg | grep -Fq "EFI v"; then ...
. No tiene sentido ejecutar el[
comando además, solo para probar el éxito / fracaso.$?
es principalmente útil para verificar errores específicos.Código de Python para verificar si el sistema se inicia con UEFI o ROM BIOS:
fuente