Posso usar links simbólicos em uma partição de inicialização EFI?

0

Eu criei recentemente uma VM de 64 bits do servidor Ubuntu 14.04 no VirtualBox, usando a inicialização EFI. Eu estava sendo descartado para um shell EFI ao inicializar a máquina virtual, como presumivelmente não encontrei o arquivo .efi correto para inicializar.

O Ubuntu cria esse arquivo em /boot/efi/EFI/grubx64.efi . Eu posso dizer ao shell EFI para inicializar o formulário desse arquivo usando:

fd0:\efi\ubuntu\grubx64.efi

No entanto, não quero fazer isso toda vez que inicializo a VM. Então, copiei o arquivo para o local padrão de /boot/efi/EFI/boot/bootx64.efi . Ele agora inicializa com sucesso sem qualquer entrada adicional.

Estou preocupado que o arquivo /boot/efi/EFI/grubx64.efi será atualizado no processo normal de atualização do Ubuntu, o que significa que o novo arquivo /boot/efi/EFI/boot/bootx64.efi estará fora de sincronia com ele, a menos que eu me recorde de copiá-lo.

É possível usar um link simbólico ou outro método para garantir que, quando o arquivo original for atualizado, minha cópia em /boot/efi/EFI/grubx64.efi reflita as alterações?

    
por Arronical 03.03.2017 / 10:50

2 respostas

2

Você pode fazer com que as variáveis "NVRAM" do VirtualBox "fiquem" usando a interface de usuário do VirtualBox EFI para manipular as variáveis. Em resumo:

  1. "Ligar" a máquina virtual.
  2. Quase imediatamente, antes que o GRUB apareça, aperte a barra de espaço. Você deve ver o menu do modo de texto do VirtualBox EFI aparecer, com itens de menu chamados Continuar, Selecionar Idioma, Gerenciador de Inicialização, Gerenciador de Dispositivos e Gerenciador de Manutenção de Inicialização.
  3. Selecione "Gerenciador de manutenção de inicialização". Um novo menu deve aparecer.
  4. Selecione "Opções de inicialização".
  5. Selecione "Adicionar opção de inicialização". Aparece um menu "explorador de arquivos", que mostra seus discos virtuais, identificados por longas seqüências de números hexadecimais e outras coisas que parecem ser rabiscos para a maioria das pessoas.
  6. Usando o explorador de arquivos, você deve conseguir pesquisar o arquivo EFI/ubuntu/grubx64.efi no disco virtual. Selecione isso. Agora você verá um menu chamado "Modificar a descrição da opção de inicialização".
  7. Realce a linha "Insira a descrição" e pressione a tecla Enter.
  8. Agora você deve inserir uma descrição para a entrada de inicialização. O Ubuntu chama ubuntu por padrão, mas você pode chamar de outra coisa, se quiser.
  9. De volta à tela "Modificar a descrição da opção de inicialização", selecione "Confirmar alterações e sair". Isso leva você de volta à tela "Boot Maintenance Manager".
  10. Selecione "Opções de inicialização" novamente.
  11. Selecione "Alterar ordem de inicialização". Você deve ver a ordem de inicialização, com sua nova entrada na parte inferior.
  12. Pressione a tecla Enter para editar a ordem de inicialização.
  13. Destaque sua nova entrada e, em seguida, pressione a tecla "+" quantas vezes forem necessárias para colocá-la no topo da lista.
  14. Pressione a tecla Enter. A caixa de diálogo de edição deve desaparecer e você deve ver o novo pedido na tela "Alterar ordem de inicialização".
  15. Selecione "Confirmar alterações e sair". Isso deve trazer você de volta à tela "Boot Options".
  16. Pressione a tecla Esc para retornar à página principal "Boot Maintenance Manager".
  17. Selecione "Redefinir sistema". A máquina virtual deve ser reinicializada no GRUB.

A entrada ubuntu (ou seja lá como você a chamar) deve persistir entre as reinicializações e até as seqüências de "desligar / ligar". Pessoalmente, eu acho este procedimento muito estranho e chato de usar em uma base regular; Eu apenas renomeio os arquivos do gerenciador de inicialização como você diz que já fez. (Com uma variante: eu quase sempre uso meu próprio rEFInd, não o GRUB; mas o princípio é o mesmo dos dois lados.)

    
por Rod Smith 05.03.2017 / 22:39
1

Se bem entendi, a partição EFI tem o sistema de arquivos FAT32 (e deve ter FAT32 ou ISO 9660). E eu não acho que os links simbólicos do Linux funcionem no FAT32.

Na sua situação, eu criaria um script que verifica e atualiza grubx64.efi . O script pode usar rsync e pode ser chamado via crontab @reboot . Sim, isso atrasaria a cópia de uma reinicialização, portanto, deveria haver uma alternativa melhor (para acionar o script de cópia).

Se você quiser fazer uma experiência, experimente UDF, que pode funcionar com alguns tipos de links e que pode permitir a inicialização no modo UEFI. Você pode até tentar com o ext2 (quem sabe, talvez o computador seja inicializado).

Outra alternativa é solucionar o problema inicializando a máquina virtual no modo BIOS (que funciona mesmo se o sistema host for executado no modo UEFI). Veja este link: Instalação / UEFI-and-BIOS / stable-alternative

    
por sudodus 03.03.2017 / 12:56