Como determinar se um sistema Ubuntu em execução específico foi inicializado usando EFI / UEFI ou BIOS?
Como determinar se um sistema Ubuntu em execução específico foi inicializado usando EFI / UEFI ou BIOS?
Respostas:
A maneira mais fácil é verificar se /sys/firmware/efi
existe. Não aparece se você inicializou usando o BIOS tradicional.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Descontinuada
A resposta abaixo é um método que nem sempre funciona.
Em vez disso, use a resposta de Colin com base em/sys/firmware/efi
.
É muito fácil saber se um sistema foi inicializado no EFI (ou não, nesse caso, deve ser o BIOS):
Apenas use dmesg | grep "EFI v"
Isso retornará uma linha como esta, se o sistema foi inicializado a partir do EFI:
[0.000000] EFI v2.00 da American Megatrends
Ou não devolva nada, se não foi, caso em que foi inicializado a partir do BIOS
... dmesg grep -q "EFI v" # -q diz ao grep para não gerar nada se [$? -eq 0] # verifica o código de saída; se 0 EFI, senão BIOS então eco "Você está usando a inicialização EFI." outro eco "Você está usando a inicialização do BIOS" fi ...
Fonte: para saber como determinar se um sistema EFI está usando ou emulação de BIOS herdado ou não, além de mais informações sobre o teste de compatibilidade com EFI e EFI, juntamente com as sequências de vários fornecedores / versões de EFI, consulte esta página em o Ubuntu Developer Summit for Precise .
if dmesg | grep -Fq "EFI v"; then ...
. [
Além disso, não faz sentido executar o comando, apenas para testar o sucesso / falha. $?
é útil principalmente para verificar erros específicos.
Código Python para verificar se o sistema foi inicializado com UEFI ou ROM BIOS:
import os, sys def main (): if (os.path.exists ("/ sys / firmware / efi")): print "\ n \ n O sistema é inicializado com o uefi!" outro: print "\ n \ n O sistema é inicializado com rom bios" a Principal() sys.exit (0)