O VirtualBox é inicializado apenas no shell UEFI Interactive
49
Eu instalei o Ubuntu 14.10 no VirtualBox com UEFI. Mas agora eu reiniciei este SO e agora ele inicializa em um UEFI Interactive Shell v2.0. Como posso inicializar normalmente no Grub novamente?
Boas notícias a todos, com o VirtualBox 5.1, as soluções alternativas não são mais necessárias. Você pode apenas precisar adicionar uma nova entrada EFI (manual usando efibootmgrou automaticamente reinstalando o grub) para inicializar o Ubuntu imediatamente novamente.
Ph16
2
Mesmo com o 5.1, as alterações nas variáveis efi, como a configuração de inicialização necessária, efibootmgrsão perdidas após o desligamento (elas permanecem na reinicialização).
Chappjc
1
5.1.30 ainda existe. Mesmo que a correção seja fácil, mas eu tenho que corrigir sempre que instalar o debian e o ubuntu.
CallMeLaNN 26/11
Respostas:
52
Encontrei o mesmo problema e descobri que, se eu emitir o seguinte comando no shell interativo, a máquina virtual inicializaria no Ubuntu:
fs0:\efi\ubuntu\grubx64.efi
(Use barra invertida, a barra não funciona. Os comandos no shell interativo UEFI não diferenciam maiúsculas de minúsculas.)
Minha versão do VirtualBox é 4.3.20 r96997, a versão do Ubuntu é 14.10 AMD64. Não sei por que isso acontece e como resolvê-lo. Só achei isso uma solução alternativa não elegante e ainda um pouco problemática.
Solução alternativa na atualização 1 falhou. Desliguei a máquina virtual e a iniciei. E foi inicializado no shell UEFI Interactive novamente. De acordo com isso , o problema provavelmente foi causado por um bug do VirtualBox. Ainda estou procurando uma solução adicional para isso.
Atualização 3:
Finalmente encontrei uma solução. De acordo com isso , você precisa criar um script startup.nsh manualmente. Exceto pelo método no post mencionado, você também pode fazer isso:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
"No momento, não é possível manipular variáveis EFI de um convidado em execução" A solução em sua segunda atualização para mover o gerenciador de inicialização que você deseja usar no ESP\EFI\boot\bootx64.efiparece ser a melhor solução para mim do que desperdiçar 5 segundos para a inicialização.nsh . Nota: Você pode pressionar F12 durante a inicialização ou entrarexitno shell EFI para acessar as configurações de firmware e modificar todos os tipos de coisas, incluindo a resolução do terminal, mas essas modificações não são armazenadas permanentemente.
LiveWireBT
Depois de emitir o comando no shell interativo que você pode instalar refindpara corrigir EFI
Eduardo
1
É bom saber que é um bug. Simplesmente edit startup.nsh. +1 Ele está procurando \EFI\boot\bootx64.efipular os 5seg.
CallMeLaNN
1
Copiar e renomear \EFI\ubuntu\shimx64.efipara \EFI\boot\bootx64.efié o melhor. crédito
CallMeLaNN
A atualização 3 fez isso por mim ...
cljk 26/03
32
Eu tive o mesmo problema (com o EFI ativado porque não consegui fazê-lo funcionar de outra maneira). Estranho; embora a instalação do Ubuntu 14.04.2 não tenha erros, a instalação do Kubuntu 15.04 falhou ao finalizar. Ele congelou no final quando solicitado a remover o DVD. Após a reinicialização, ele inicializou bem, mas após o desligamento, ele trouxe o shell.
Portanto, para evitar o tipo de shell:
fs0:
editar startup.nsh
e na janela aberta adicione estas 2 linhas:
FS0:
\ EFI \ ubuntu \ grubx64.efi
pressione Ctrl+ se Enterpara salvar e Ctrl+ qpara sair. Em seguida, reinicie a VM.
Como alternativa, você sempre pode usar essas 2 linhas para sair do shell e inicializar o SO. Mas na segunda vez que você reiniciar, você estará em um shell novamente e evitará editá-lo startup.nsh.
Digitar o comando funciona, mas o problema é que, na próxima reinicialização, ele voltará para o shell e o arquivo startup.nsh não parece ser salvo.
Igor Čordaš
Para salvar o arquivo startup.nsh, você precisa usar Ctrl + S para salvar e pressionar Enter para gravar no arquivo.
Willoczy
2
Caso você não esteja usando o Ubuntu, você pode descobrir o caminho correto para sua máquina usando lso shell UEFI. Por exemplo ls FS0:\EFI, então ls FS0:\EFI\redhat, para aprender o caminho está FS0:\EFI\redhat\grub.efino CentOS.
Ntc2 13/0218
1
@ ntc2 Obrigado, era exatamente o que eu estava procurando! Para a minha instalação do Slackware foi FS0:\EFI\Slackware\elilo.efi.
Fabiomaia
11
Outra opção é desmarcar a opção Recursos Estendidos chamada 'Ativar EFI' em 'Placa-mãe' para sua VM.
Este problema surgiu para a instalação do Gnome Ubuntu 12.04.2 amd64bit.
Descobriu isso depois de ter que alterar as configurações de aceleração de hardware. Fiquei com a opção VT-x / AMD-V, Nested Paging ativada. Minha VM tem 2 CPUs, 8 GB de RAM para referência.
Após desmarcar a questão, o Gnome Ubuntu é completamente ignorado. O Ubuntu não inicia nenhum problema. Executando o Virtual Box 4.3.18 r96516 no Windows 7 Host de 64 bits.
Este é mais fácil do que editar o método startup.nsh , mas, na verdade, não será atualizado automaticamente e você também não pode usar o link simbólico porque é uma partição FAT32.
Giorgi Gzirishvili
1
Eu poderia resolver esse problema alterando o dispositivo cdrom na caixa virtual do IDE para SATA. Eu removi o mapeamento padrão da unidade virtual de cdrom na configuração do dispositivo.
Simplesmente adicione um dispositivo cdrom ao SATA Controller existente, que será usado na mídia de instalação.
Encontrei recentemente esse problema. Por favor, verifique as configurações do seu sistema operacional virtual. Clique com o botão direito do mouse em os-> sistema-> Recursos estendidos-> Ativar EFI (desmarque isso).
efibootmgr
ou automaticamente reinstalando o grub) para inicializar o Ubuntu imediatamente novamente.efibootmgr
são perdidas após o desligamento (elas permanecem na reinicialização).Respostas:
Encontrei o mesmo problema e descobri que, se eu emitir o seguinte comando no shell interativo, a máquina virtual inicializaria no Ubuntu:
(Use barra invertida, a barra não funciona. Os comandos no shell interativo UEFI não diferenciam maiúsculas de minúsculas.)
Minha versão do VirtualBox é 4.3.20 r96997, a versão do Ubuntu é 14.10 AMD64. Não sei por que isso acontece e como resolvê-lo. Só achei isso uma solução alternativa não elegante e ainda um pouco problemática.
Atualização 1:
Eu li isso , procurei um relatório de erro e encontrei uma solução melhor .
Atualização 2:
Solução alternativa na atualização 1 falhou. Desliguei a máquina virtual e a iniciei. E foi inicializado no shell UEFI Interactive novamente. De acordo com isso , o problema provavelmente foi causado por um bug do VirtualBox. Ainda estou procurando uma solução adicional para isso.
Atualização 3:
Finalmente encontrei uma solução. De acordo com isso , você precisa criar um script startup.nsh manualmente. Exceto pelo método no post mencionado, você também pode fazer isso:
fonte
\EFI\boot\bootx64.efi
parece ser a melhor solução para mim do que desperdiçar 5 segundos para a inicialização.nsh . Nota: Você pode pressionar F12 durante a inicialização ou entrarexit
no shell EFI para acessar as configurações de firmware e modificar todos os tipos de coisas, incluindo a resolução do terminal, mas essas modificações não são armazenadas permanentemente.refind
para corrigir EFIedit startup.nsh
. +1 Ele está procurando\EFI\boot\bootx64.efi
pular os 5seg.\EFI\ubuntu\shimx64.efi
para\EFI\boot\bootx64.efi
é o melhor. créditoEu tive o mesmo problema (com o EFI ativado porque não consegui fazê-lo funcionar de outra maneira). Estranho; embora a instalação do Ubuntu 14.04.2 não tenha erros, a instalação do Kubuntu 15.04 falhou ao finalizar. Ele congelou no final quando solicitado a remover o DVD. Após a reinicialização, ele inicializou bem, mas após o desligamento, ele trouxe o shell.
Portanto, para evitar o tipo de shell:
e na janela aberta adicione estas 2 linhas:
pressione Ctrl+ se Enterpara salvar e Ctrl+ qpara sair. Em seguida, reinicie a VM.
Como alternativa, você sempre pode usar essas 2 linhas para sair do shell e inicializar o SO. Mas na segunda vez que você reiniciar, você estará em um shell novamente e evitará editá-lo
startup.nsh
.fonte
ls
o shell UEFI. Por exemplols FS0:\EFI
, entãols FS0:\EFI\redhat
, para aprender o caminho estáFS0:\EFI\redhat\grub.efi
no CentOS.FS0:\EFI\Slackware\elilo.efi
.Outra opção é desmarcar a opção Recursos Estendidos chamada 'Ativar EFI' em 'Placa-mãe' para sua VM.
Este problema surgiu para a instalação do Gnome Ubuntu 12.04.2 amd64bit.
Descobriu isso depois de ter que alterar as configurações de aceleração de hardware. Fiquei com a opção VT-x / AMD-V, Nested Paging ativada. Minha VM tem 2 CPUs, 8 GB de RAM para referência.
Após desmarcar a questão, o Gnome Ubuntu é completamente ignorado. O Ubuntu não inicia nenhum problema. Executando o Virtual Box 4.3.18 r96516 no Windows 7 Host de 64 bits.
fonte
Copie
grubx64.efi
para o/EFI/boot/bootx64.EFI
VirtualBox e use-o
bootx64.efi
para inicializar.Ref .: Wiki do Archlinux Virtualbox
fonte
Eu poderia resolver esse problema alterando o dispositivo cdrom na caixa virtual do IDE para SATA. Eu removi o mapeamento padrão da unidade virtual de cdrom na configuração do dispositivo.
Simplesmente adicione um dispositivo cdrom ao SATA Controller existente, que será usado na mídia de instalação.
Et voila, sem mais problemas com EFI.
fonte
Encontrei recentemente esse problema. Por favor, verifique as configurações do seu sistema operacional virtual. Clique com o botão direito do mouse em os-> sistema-> Recursos estendidos-> Ativar EFI (desmarque isso).
fonte
para isso, você precisa escrevê-lo da seguinte maneira:
é assim que eu consegui que funcionasse se você escrevesse de outra maneira, não funcionará.
fonte
Outra solução:
No shell uefi, inicialize temporariamente no ubuntu usando:
Então, dentro do ubuntu, edite o arquivo startup.nsh como abaixo:
Abra o terminal Ctrl+ Alt+ T.
Tipo:
Coloque sua senha.
Agora exclua tudo o que estiver lá usando a tecla del ou backspace.
Digite exatamente isso: (
FS0
- esse é o numeral0
, não o alfabetoO
)Agora pressione Ctrl+ O(Isso é alfabeto O).
Depois, Alt+ D(Para alterar o texto para o formato msdos).
Então pressione
Enter
.Então Ctrl+ X.
Agora reinicie.
Tudo deve estar bem agora.
fonte
Usando o Ubuntu 16.04.4 com a EFI ativada e ao iniciar a máquina virtual, descobri que ela não inicializa e permanece no shell interativo da EFI.
Foi assim que eu consertei a inicialização:
Primeiro, descobri que o grubx64.efi está localizado no BLK2; portanto, durante uma inicialização única, digitei o seguinte no shell interativo:
E viola, o Ubuntu está instalado e funcionando.
Para resolver esse problema permanentemente, depois que o sistema foi iniciado, ecoei a seguinte linha no /boot/efi/startup.nsh.
É isso, o sistema irá inicializar corretamente.
fonte
Após a instalação do Kubuntu15.10 no VirtualBox5 com UEFI, a reinicialização da VM falha.
Adicionando a linha
no UEFI-Shell não ajuda.E a solução com a criação de um novo arquivo startup.nsh no Kubuntu15.10 no ambiente chroot com
também não melhora.Eu encontrei a solução:
O problema era que o diretório / boot / efi / EFI / ubuntu com o arquivo grubx64.efi não existe.
Após inicializar um Live-CD e mudar para o ambiente chroot, instalei os pacotes ausentes e criei a entrada NVRAM necessária com:
fonte
Para definir ou alterar o diretório efi boot, primeiro é necessário executar este comando. Isso resolveu meu problema.
NOTA:
/dev/sda
é o disco rígido do sistema.fonte