Várias instalações do GRUB com o UEFI: como elas localizam suas configurações?

0

De acordo com os documentos UEFI de Rod Smith no link , o grub.cfg pode ser instalado ao lado do grubx64. efi na partição EFI ou deixado em / boot / em uma partição linux. Aparentemente, o Ubuntu usa o último método.

Minha pergunta é: como o GRUB encontra a partição do Linux se houver mais deles? O grubx64.efi é uma compilação personalizada para cada instalação, contendo um UUID de partição? Existe uma ordem de pesquisa para partições Linux?

O que estou procurando especificamente: é possível configurar várias instalações do GRUB no nível de UEFI, por exemplo, dois arquivos grubx64.efi, cada um usando um arquivo de configuração diferente do GRUB?

(Meu caso de uso específico é instalar o Ubuntu junto com o SteamOS, que já tem o GRUB instalado, com a menor quantidade de alterações possíveis.)

    
por Latanius 17.01.2016 / 02:29

1 resposta

2

A localização do arquivo de configuração do GRUB é codificada no binário grubx64.efi . A última vez que verifiquei, o Ubuntu funcionou de duas maneiras, dependendo do pacote que você instalou:

  • Se você instalar a versão com capacidade de inicialização segura do GRUB, ela procurará EFI/ubuntu no mesmo volume que o binário do GRUB para grub.cfg . Este arquivo é então customizado para apontar de volta para /boot/grub/grub.cfg , referindo-se à partição por número de UUID.
  • Se você instalar a versão non -Secure-Boot do GRUB, o pacote modificará o binário grubx64.efi no momento da instalação para que ele se refira diretamente a /boot/grub/grub.cfg .

Note que já faz um tempo desde que eu verifiquei esses detalhes, e nunca mergulhei neles profundamente, então posso estar enganado sobre isso.

O resultado disso é que, se você quiser usar dois GRUBs que apontam para dois arquivos de configuração diferentes, você deve modificar o grubx64.efi binário. Há uma página wiki antiga do Ubuntu que descreve como criar o GRUB para EFI. Esta página está desatualizada e, na verdade, aponta para outra página como substituta; mas a nova página não descreve as "porcas e parafusos" da construção de um binário GRUB. Já faz um tempo desde que eu analisei a página antiga em profundidade, então eu não posso prometer que vai lhe dizer o que você precisa saber, mas pode acontecer.

IMHO, isso é muito esforço. ELILO, SYSLINUX e rEFInd todos usam arquivos de configuração em seus diretórios home, assim você pode instalar uma dúzia de cada um (em diretórios separados) e cada um deles terá seu próprio arquivo de configuração. Os arquivos de configuração desses programas também são muito mais fáceis de manter do que os do GRUB 2 - embora, se você estiver fazendo isso manualmente, o GRUB 2 não precisa ser tão pior do que outros.

Para o seu caso específico, você pode achar uma única instalação do rEFInd como a melhor opção. Ele detecta automaticamente os kernels em cada inicialização, portanto, uma instalação do rEFInd manipulará ambas as suas distribuições sem a necessidade de configuração extra quando você atualizar um kernel. (Você pode precisar configurar um arquivo /boot/refind_linux.conf em cada distribuição para lidar com opções de kernel específicas da distribuição.) Advertência: Eu sou o mantenedor do rEFInd, então não sou exatamente imparcial.

    
por Rod Smith 18.01.2016 / 00:54