Instalação autônoma do Grub2 EFI - colocação do grub.cfg?

1

Estou tentando usar o Grub2 como gerenciador de inicialização em um sistema EFI no modo autônomo. (O único disco rígido persistente tem o OS X nele; as unidades Linux e Windows podem ou não estar presentes às vezes, daí o modo autônomo.)

Estou usando o SuperGrub2Disk, que é um executável EFI, e pelo que entendi, o executável do Grub2 neste modo possui uma imagem de disco incorporada que é montada para sua partição raiz, com uma cópia de seu próprio arquivo de configuração.

Gostaria de substituir ou alterar este arquivo de configuração com um grub.cfg externo. Eu tentei colocá-lo ao lado do executável EFI grub ou na raiz da partição ESP, mas não está sendo reconhecido. Eu também tentei carregá-lo a partir de uma linha de comando do grub com o seguinte comando:

configfile (hd3,gpt1)/grub.cfg

Isso parece não ter efeito além de limpar a tela - mesmo que o arquivo de configuração esteja lá, como confirmado por ls.

Alguém poderia me dizer se há uma maneira de usar um arquivo de configuração externo com um blob autônomo da EFI?

    
por martona 03.07.2015 / 11:09

2 respostas

3

Os binários do GRUB 2 incluem referências codificadas aos seus arquivos de configuração. Eu realmente não acompanhei todos os detalhes, mas pelo que entendi, há dois binários EFI GRUB 2 para o Ubuntu em sistemas AMD64 / x86-64:

  • grub2-efi-amd64 - Esta é a versão do GRUB 2 usada em computadores que não usam Secure Boot. Pelo que entendi, o próprio binário está ligado em seu computador a partir de componentes pré-compilados incluídos no pacote. O binário resultante refere-se a um arquivo grub.cfg no diretório /boot/grub de sua instalação do Linux. Assim, você não pode usar o binário grubx64.efi instalado a partir deste pacote em um computador em outro, porque o binário é personalizado para o computador no qual ele foi criado.
  • grub2-efi-amd64-signed - Esta versão do GRUB 2 é compilada e vinculada em um sistema canônico, para que possa ser assinada com uma chave de inicialização segura. Um efeito colateral do requisito de que o binário seja assinado é que ele não pode ser personalizado para seu sistema e, como resultado, essa versão de grubx64.efi procura no mesmo diretório que o binário para grub.cfg . Em um sistema Ubuntu, esse arquivo grub.cfg procura /boot/grub/grub.cfg , mas, em princípio, pode ser personalizado para fazer outra coisa.

Assim, no seu caso, você não pode usar o binário não assinado do GRUB 2; Se você quiser usar um binário Ubuntu GRUB 2, você deve usar o assinado. Como alternativa, você pode criar seu próprio binário, conforme descrito aqui, entre outros lugares.

No seu caso, no entanto, não acho que o GRUB 2 seja realmente ideal. Tanto o rEFIt (que agora está abandonado) como o meu fork dele, rEFInd, apresenta verificação dinâmica para carregadores de inicialização disponíveis. Assim, se você instalar o rEFIt ou o rEFInd na partição do sistema EFI (ESP) do seu disco interno Coloque os carregadores de boot para seus sistemas operacionais em suas respectivas mídias removíveis, o rEFIt / rEFInd fornecerá opções para inicializar esses sistemas operacionais se e somente se o disco apropriado estiver conectado. Esse comportamento, no entanto, dependerá do gerenciamento adequado de seus carregadores de inicialização. , colocando cada um no ESP de seu respectivo disco; Se os carregadores de boot estiverem todos armazenados no ESP do disco interno, o rEFIt / rEFInd mostrará as opções do sistema não funcionais sempre, assim como o GRUB 2. Em ambos os casos, o uso de rEFIt ou rEFInd eliminará a necessidade de se aprofundar no problema da configuração manual do GRUB 2.

    
por Rod Smith 04.07.2015 / 03:45
1

Eu esperaria que um grub.cfg colocado no mesmo diretório fosse lido e executado por uma imagem do UEUB do GRUB com os dois sendo normalmente armazenados no ESP, mas eu não sei muito sobre as configurações do Mac. (Em outra nota, a configuração embutida tem uma funcionalidade muito limitada.)

Pode ser que você crie a imagem do GRUB sem uma configuração incorporada para chegar a uma solução. Essas postagens podem ajudar:

por LiveWireBT 04.07.2015 / 17:33