Instalando o GRUB em um pendrive: Continue tendo este erro “não é possível encontrar o diretório EFI”

2

Estou tentando instalar o grub em um pendrive para torná-lo inicializável. Eu quero torná-lo inicializável para fazer um multiboot USB, para transportar mais de uma distro em um único USB (ou seja, rescatux e coroa). Eu fiz isso:

sudo mkdir -p /media/MULTIBOOT/boot

e depois:

sudo grub-install --target=x86_64-efi --boot-directory=/media/MULTIBOOT/boot /dev/sdc1

E eu recebo este erro:

  

Instalando para a plataforma x86_64-efi. grub-install: erro: não foi possível encontrar   Diretório EFI.

Eu tenho o Ubuntu 14.04 LTS e ele é de 64 bits.

Esta é a minha configuração USB:

Esta é a primeira vez que estou tentando isso e estou um pouco perdido aqui, devo usar /dev/sdc1 ou /dev/sdc ?

Eu tentei (com o resultado semelhante), esta outra alternativa:

sudo grub-install --target=x86_64-efi --boot-directory=/media/victoria/MULTIBOOT/boot /dev/sdc

Onde está o problema?

Obrigado pela sua ajuda!

    
por Rosamunda 27.03.2017 / 20:33

1 resposta

3

Não posso fornecer uma resposta completa à sua pergunta porque alguns aspectos da configuração e instalação do GRUB estão além do meu nível de habilidade e por causa de alguma ambiguidade sobre o que você quer fazer (como especificado por sudodus em seu comentário à sua pergunta) . Dito isso, posso fazer várias observações e sugestões que podem ser úteis:

  • Quando você instala o GRUB em um sistema EFI normal do Ubuntu, o GRUB se torna EFI/ubuntu/grubx64.efi na partição do sistema EFI (ESP) , com uma entrada NVRAM apontando para esse local.
  • As unidades USB inicializáveis da EFI, por outro lado, normalmente inicializam a partir de um carregador de inicialização chamado EFI/BOOT/bootx64.efi no ESP da unidade USB. Esse nome de arquivo é normalmente chamado de nome de arquivo de fallback, e as EFIs devem procurar esse nome como último recurso se nenhuma entrada NVRAM apontar para um carregador de inicialização válido ou se o usuário selecionar a mídia de inicialização de um menu gerenciador de inicialização embutido. Assim, para instalar neste local, você deve ajustar o comando grub-install (e não tenho nem 100% de certeza de que ele suporta isso) ou copiar os arquivos manualmente.
  • Complicando o anterior, se o computador usar o Secure Boot, o Ubuntu instala um programa chamado Shim ( shimx64.efi ) e cria uma entrada NVRAM apontando para ele, em vez de grubx64.efi . Da mesma forma, para inicializar uma mídia externa, o original shimx64.efi deve ser denominado EFI/BOOT/bootx64.efi . Em qualquer um dos casos, o Shim lança grubx64.efi no mesmo diretório que o Shim.
  • Quando não usa o Secure Boot, o GRUB do Ubuntu procura um arquivo grub.cfg no diretório /boot/grub , que provavelmente não será o ESP. Ao inicializar com o Secure Boot ativo, porém, grubx64.efi procura por grub.cfg no mesmo diretório que grubx64.efi . Esse grub.cfg , porém, procura e carrega /boot/grub/grub.cfg , então o efeito é o mesmo, mas o caminho é mais complexo. Em ambos os casos, há uma dependência tanto do ESP quanto da partição que contém /boot/grub . Algumas distribuições definem as coisas de maneira diferente; O Fedora, por exemplo, coloca o grub.cfg final e todos os arquivos relacionados no ESP.
  • O arquivo /boot/grub/grub.cfg é construído (ou reconstruído) por scripts de configuração que são executados sempre que você instala um novo kernel ou binário do GRUB. Isso funciona bem para um sistema de inicialização única, mas se você estiver fazendo várias inicializações com outra distribuição do Linux, as coisas ficarão confusas rapidamente. Em particular, se o GRUB da Distribuição A controlar o processo de inicialização e você atualizar o kernel para Distribuição B, o GRUB não mostrará o novo kernel da Distribuição B até você executar update-grub (ou algo similar) na Distribuição A.

Entre esses fatores, para fazer o que você quer com o GRUB, é provável que você tenha que instalar o nome do arquivo de fallback em vez do arquivo padrão; você pode ou não precisar apertar Shim na foto; e você pode precisar ajustar seu grub.cfg para sua configuração de duas distribuições. Isso é muito a fazer. Se eu precisasse fazer tudo isso com o GRUB, minha abordagem seria instalar as duas distribuições na unidade USB como se fosse um disco rígido interno e depois mover / renomear o GRUB (ou Shim) para o nome do arquivo de fallback. Isso terá a vantagem de que você não precisa mexer com o arquivo grub.cfg . Uma grande ressalva é que, se você quiser usar algo que se instala de maneira incomum (como via UNetbootin ou Rufus em vez do instalador Ubiquity do Ubuntu), isso pode mudar a equação de uma maneira que requer uma abordagem completamente diferente. Parece que você está tentando usar o Ubuntu no disco rígido para instalar o GRUB na unidade USB a ser usada na inicialização da unidade USB. Essa abordagem pode funcionar se você for muito mais um especialista em GRUB do que eu, mas há variáveis obscuras o suficiente em jogo que sua abordagem provavelmente será um campo minado de complicações.

Outro método é usar meu gerenciador de inicialização do rEFInd. Você precisaria instalá-lo no nome do arquivo de fallback, mas rEFInd procura por kernels no momento da inicialização, portanto, é menos provável que ele seja interrompido instalando um novo kernel em uma distribuição quando você usou a outra distribuição para instalar o GRUB ou o rEFInd. OTOH, se você quiser usar o Secure Boot, você precisará dar saltos extras (documentados na página de inicialização segura do rEFInd ) para que funcione, provavelmente em todos os computadores que você usa para inicializar a unidade USB. Você também pode precisar criar /boot/refind_linux.conf files para ambas suas distribuições para lidar com opções de kernel específicas da distribuição. (Consulte a documentação do rEFInd Linux, e especialmente a metade inferior da página, para obter informações sobre isso.)

    
por Rod Smith 27.03.2017 / 21:55