O shell EFI é uma ferramenta de linha de comando semelhante no conceito de bash no Linux / Unix / OS X ou uma janela do Prompt de Comando no Windows. Ele permite visualizar, excluir, editar e renomear arquivos, atualizar as entradas do gerenciador de inicialização EFI e assim por diante. Você pode sair do shell digitando exit
; no entanto, no caso do VirtualBox, isso provavelmente levará você a um menu EFI que pode ser confuso.
Se você instalou um sistema operacional na sua sessão do VirtualBox, provavelmente instalou um gerenciador de partida na partição do sistema EFI (ESP) . A maioria dos sistemas operacionais registra esses gerenciadores de inicialização com o firmware, que os lembra e os inicializa automaticamente. Uma peculiaridade do VirtualBox é que ele geralmente esquece essas entradas do gerenciador de inicialização. O resultado é que a VM é inicializada no shell EFI por padrão. Existem várias maneiras de lidar com esse problema, incluindo:
- Você pode iniciar o gerenciador de inicialização manualmente usando o shell EFI:
- Digite
fs0:
para acessar o primeiro sistema de arquivos, que geralmente é o ESP. - Digite
cd EFI\{osname}
, em que{osname}
é o nome do diretório em que seu sistema operacional instalou seu carregador de inicialização. (Você não disse qual sistema operacional você instalou, então não posso ter certeza do que é isso. Digitarls EFI
mostrará o que está lá.) - Inicie o gerenciador de inicialização digitando seu nome. Mais uma vez, não sei o que é isso. Para o Linux, geralmente é
grubx64.efi
. Para o Windows, ébootmgfw.efi
.
- Digite
- Automatize o procedimento acima com um script de inicialização do shell EFI (
startup.nsh
no diretório raiz do ESP). - Renomeie o carregador de boot para
EFI\BOOT\bootx64.efi
, que é o nome do arquivo de fallback:- Digite
fs0:
para acessar o primeiro sistema de arquivos, que geralmente é o ESP. - Digite
mv EFI\{osname} EFI\BOOT
para renomear o diretório no qual o carregador de boot reside. Como acima, você terá que determinar qual é o{osname}
. - Digite
mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi
, em que{loadername.efi}
é o nome do carregador de inicialização, comogrubx64.efi
para a maioria das instalações do Linux.
- Digite
- Registre o carregador de boot com o firmware do VirtualBox usando as ferramentas do shell. Eu não sei de uma descrição concisa de como fazer isso na web, de improviso, e não tenho tempo para escrever aqui. É provável que seja frustrante sem instruções precisas, porque há muitas armadilhas não óbvias que você deve evitar.
Pessoalmente, a solução mais usada é renomear o carregador de boot do padrão do SO para EFI\BOOT\bootx64.efi
. Este é o mais fácil de implementar e funciona bem o suficiente. Uma desvantagem dessa abordagem é que, se o seu sistema operacional atualizar o carregador de boot, a atualização provavelmente irá para o local original, então você terá que repetir o processo se quiser usar o gerenciador de inicialização atualizado.