O hardware (até mesmo o hardware virtual) é muitas vezes inicializado pelo firmware (o BIOS, o código de inicialização de hardware pré-EFI no firmware ou o firmware incorporado no próprio dispositivo). Isto é especialmente verdadeiro para o hardware de vídeo e alguns outros dispositivos que são construídos em placas-mãe. Além disso, o EFI fornece um driver de buffer de quadro para acessar dispositivos de vídeo, que o BIOS não fornece. Isso pode influenciar como o Linux acessa o hardware de vídeo.
No caso do VirtualBox, toda a pilha de firmware é diferente para os modos BIOS vs. EFI. Isso influencia como os drivers do Linux interagem com o hardware de vídeo (virtual), porque ele será inicializado de maneiras diferentes. FWIW, executo Xorg -configure
para criar um novo arquivo /root/xorg.conf-sample
(ou seja lá como ele for chamado), copie isso para /etc/X11/xorg.conf
e ajuste-o para usar o driver fbdev
. Os drivers convidados do VirtualBox às vezes também funcionam no VirtualBox, mas isso é relativamente recente e não funciona para todos os sistemas operacionais convidados.
Algo parecido pode acontecer em hardware real também, embora em hardware real, as inicializações do modo BIOS / CSM / legado geralmente são feitas sobre o EFI, portanto, pode haver mais semelhança entre os modos de inicialização do que no VirtualBox. No entanto, pode haver diferenças entre as inicializações do BIOS / CSM / legacy-mode e as inicializações do modo EFI / UEFI. Como os primeiros têm sido historicamente mais comuns, os últimos produzem mais problemas, em média. Isso é especialmente verdadeiro quando se usam drivers de vídeo proprietários; Por alguma razão, a ATI e a Nvidia têm sido lentas em fornecer suporte a EFI para seus drivers Linux proprietários. IMHO, isso é apenas mais um motivo para evitar esses drivers. (Eu nunca fui grande fã deles, desde que eles sempre criaram mais problemas do que eles resolveram para meus usos.)
Existem outras diferenças BIOS-vs-EFI pós-inicialização também. Em particular, o EFI permanece mais acessível que o BIOS, com algo chamado "serviços de tempo de execução". O sistema operacional pode se comunicar com a EFI para definir variáveis NVRAM, usar o driver framebuffer da EFI e assim por diante. No momento, é improvável que você use a maioria desses recursos (exceto talvez o driver de framebuffer EFI), mas eles podem se tornar mais importantes no futuro. Um recurso EFI importante é a capacidade de definir opções de inicialização por meio do utilitário efibootmgr
do Linux. A maioria das distribuições Linux usa essa ferramenta de forma transparente como parte da instalação do GRUB, mas você pode usá-la manualmente para alterar os carregadores de inicialização, para reinicializar diretamente em outro sistema operacional em uma base única ou outras coisas.