Estou tentando usar o Grub2 como gerenciador de inicialização em um sistema EFI no modo autônomo. (O único disco rígido persistente possui OS X; 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 tem uma imagem de disco incorporada que ele monta para sua partição raiz, com uma cópia de seu próprio arquivo de configuração dentro.
Gostaria de substituir ou alterar este arquivo de configuração por um grub.cfg externo. Tentei colocá-lo próximo ao executável grub EFI ou na raiz da partição ESP, mas não está sendo reconhecido. 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 nenhum efeito além de limpar a tela - mesmo que o arquivo de configuração esteja lá, conforme confirmado por ls.
Alguém poderia me dizer se existe uma maneira de usar um arquivo de configuração externo com um blob autônomo EFI?
Responder1
Os binários do GRUB 2 incluem referências embutidas em código para seus arquivos de configuração. Eu realmente não tenho acompanhado todos os detalhes sangrentos, mas pelo que entendi, existem dois binários EFI GRUB 2 para Ubuntu em sistemas AMD64/x86-64:
grub2-efi-amd64
-- Esta é a versão do GRUB 2 usada em computadores que fazemnãouse inicialização segura. Pelo que entendi, o próprio binário está vinculado emseucomputador a partir de componentes pré-compilados incluídos no pacote. O binário resultante refere-se a um arquivo no diretóriogrub.cfg
de instalação do Linux ./boot/grub
Portanto, você não pode usar ogrubx64.efi
binário instalado deste pacote em um computador ou em outro, porque o binário é customizado para o computador no qual foi criado.grub2-efi-amd64-signed
-- Esta versão do GRUB 2 é compilada e vinculada em um sistema Canonical 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 o seu sistema e, como resultado, esta versão dogrubx64.efi
procura no mesmo diretório que o binário paragrub.cfg
. Em um sistema Ubuntu, essegrub.cfg
arquivo procura por/boot/grub/grub.cfg
, mas em princípio poderia ser personalizado para fazer outra coisa.
Assim, no seu caso você não pode usar o binário GRUB 2 não assinado; se você quiser usar um binário padrão do Ubuntu GRUB 2, você deve usar o assinado. Alternativamente, você poderia construir seu próprio binário, conforme descritoaqui,entre outros lugares.
No seu caso, porém, não acho que o GRUB 2 seja realmente ideal. AmbosREFIt(que agora está abandonado) e meu fork,refInd,apresentam varredura dinâmica para carregadores de inicialização disponíveis. Assim, se você instalar o rEFIt ou o rEFInd em seudisco interno Partição do sistema EFI (ESP)e colocar os carregadores de inicialização 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. carregadores, colocando cada um no ESP do seu respectivo disco; se todos os seus carregadores de inicialização estiverem armazenados no ESP do seu disco interno, o rEFIt/rEFInd mostrará opções de sistema operacional não funcionais o tempo todo, assim como o GRUB 2 faria. Em ambos os casos, usar rEFIt ou rEFInd evitará a necessidade de se aprofundar no pântano da configuração manual do GRUB 2.
Responder2
Eu esperaria que um grub.cfg colocado no mesmo diretório fosse lido e executado por uma imagem GRUB UEFI com ambos geralmente armazenados no ESP, mas não sei muito sobre as configurações do Mac. (Por outro lado, a configuração incorporada tem funcionalidade muito limitada.)
Pode ser que criar você mesmo a imagem GRUB sem uma configuração incorporada o leve um passo adiante em direção a uma solução. Estas postagens podem ajudar:
- 2.1. Criando o binárioe2.2. Criando o arquivo de configuraçãoemComo criar mídia ao vivo USB inicializável somente UEFI?
- Adicione uma partição (de inicialização) para Macs
Responder3
Um aplicativo GRUB 2 UEFI independente pode ser criado, contendo uma instalação isolada do GRUB 2 que lê um arquivo de configuração no mesmo diretório que o binário do aplicativo.
Este processo édescrito no wiki do Arch Linux, mas pode ser feito em qualquer distribuição (desde que os caminhos sejam ajustados de acordo).