Na maioria das distribuições Linux, a maneira mais simples de fazer isso é verificar a presença de um diretório chamado /sys/firmware/efi
:
$ ls -F /sys/firmware
acpi/ efi/ memmap/
Se estiver presente, como neste exemplo, você será inicializado no modo EFI. Se estiver ausente, você provavelmente inicializou no modo BIOS; no entanto, existem maneiras de inicializar no modo EFI e não ter esse diretório. Esses métodos geralmente envolvem configurações raras ou passar opções de inicialização para o kernel que desabilitam o suporte a EFI.
Se você acha que um desses problemas pode estar em jogo, você pode examinar o buffer de anel do kernel com dmesg
e procurar por linhas que incluam a string EFI
(ou efi
, para algumas linhas):
$ dmesg | grep -i efi
[ 0.000000] Command line: \vmlinuz-3.13.0-65-generic.efi.signed ro root=/dev/mapper/louiswu-trusty_crypt quiet splash initrd=\initrd.img-3.13.0-65-generic
[ 0.000000] efi: EFI v2.31 by INSYDE Corp.
[ 0.000000] efi: ACPI=0x9cffe000 ACPI 2.0=0x9cffe014 SMBIOS=0x9cebef98
[ 0.000000] efi: mem00: type=3, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB)
[ 0.000000] efi: mem01: type=2, attr=0xf, range=[0x0000000000001000-0x0000000000007000) (0MB)
...
[ 0.950130] efifb: probing for efifb
[ 0.951549] efifb: framebuffer at 0xa0000000, mapped to 0xffffc90010f00000, using 8100k, total 8100k
[ 0.951551] efifb: mode is 1920x1080x32, linelength=7680, pages=1
[ 0.951552] efifb: scrolling: redraw
[ 0.951554] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 0.963414] fb0: EFI VGA frame buffer device
[ 1.033729] EFI Variables Facility v0.08 2004-May-17
[ 1.145930] fb: conflicting fb hw usage inteldrmfb vs EFI VGA - removing generic driver
[ 1.911331] tsc: Refined TSC clocksource calibration: 2394.456 MHz
Isso pode ser um pouco mais difícil de analisar porque você pode encontrar algumas linhas "EFI" mesmo em um computador baseado em BIOS, especialmente se o firmware for realmente um EFI, mas usar o suporte herdado do CSM para inicializar no modo BIOS. No entanto, uma inicialização no modo EFI terá muitas linhas semelhantes às mostradas acima e, em particular, uma longa série de efi: mem##
linhas. (Eu reduzi para apenas duas dessas linhas neste exemplo, por brevidade).
Um problema com essa abordagem é que o buffer de anel do kernel é de tamanho limitado e, à medida que mais mensagens são registradas nele, as antigas podem desaparecer. Assim, se o computador estiver funcionando há muito tempo, todas as mensagens EFI relevantes podem estar faltando.
Mais um ponto: sua pergunta é um pouco ambígua - não está claro se você deseja descobrir em qual modo você está executando ou qual é o seu hardware de fazer. Eu assumi a primeira pergunta nesta resposta até agora. Se você quer aprender as capacidades do seu hardware, então os testes anteriores podem ajudar; Se você inicializou no modo EFI, é quase certo que você tenha o firmware EFI. (É possível usar o DUET ou o Clover para executar um EFI no topo de um BIOS antigo, mas essas são configurações bastante raras que exigem muito esforço para serem configuradas, então você provavelmente saberia se tivesse feito isso, pelo menos em um computador que você gerencia.) No entanto, se você descobrir que inicializou no modo BIOS, ainda poderá ter uma EFI. Se você acha que este é o caso, você só tem que cavar através das opções do seu utilitário de configuração de firmware para pistas. Procure, em particular, qualquer coisa com os termos "EFI", "UEFI", "CSM" ou "legacy boot"; Todos estes termos são geralmente indicadores de que o firmware é um EFI. Os dois últimos indicam que ele fornece um CSM para suportar a inicialização no modo BIOS. A maioria dos EFIs fornece um CSM, mas alguns (particularmente máquinas de baixa potência como tablets) não. A idade do seu computador também pode ser importante. A maioria dos computadores lançados em meados de 2011 e, posteriormente, fornecem EFIs, como alguns vendidos anteriormente. Todos os Macs baseados em Intel usam EFIs também. O teste de data não é perfeito, no entanto; Eu comprei uma máquina baseada em EFI em 2007 ou por aí e um computador baseado em BIOS em 2014, apenas como um exemplo.