EFI e GRUB2 onde obter binários e como montar o sistema de inicialização

EFI e GRUB2 onde obter binários e como montar o sistema de inicialização

UEFI e GRUB2

Alguém conhece o site para obter os binários
(bootia32.efi e bootx64.efi) para inicializar o grub2...
também os binários GRUB2... e um bom tutorial ajuda sobre isso...

Eu quero fazer um disco de inicialização múltipla mais ou menos assim ...

EFI
    \BOOT
        \bootia32.efi
        \bootx64.efi
        \<grub-binaries>
        \<grub-background-image>
        \<grub-configuration-file>

    \AndroidX86v6
    \Microsoft
    \Ubuntu
    \Tails
    \Kali
    ...

Responder1

Os nomes bootx64.efie bootia32.efireferem-se ao programa carregador de inicialização substituto EFI. Este programa pode serqualquer coisa-- GRUB, o carregador de inicialização do Windows, um shell EFI, malware, etc. Portanto, você não deve procurar um programa com esse nome; em vez disso, você deve procurar um programa pelo nome real (GRUB na sua pergunta) e renomeá-lo para EFI\BOOT\bootx64.efiou EFI\BOOT\bootia32.efi(dependendo da plataforma) na sua mídia de inicialização. Na verdade, se você estiver instalando no disco rígido interno de um computador, provavelmente não deveria usar esse nome - em vez disso, você deveria confiar no gerenciador de inicialização integrado do próprio EFI para lembrar o nome do binário que deseja lançar. (Uma exceção seria se o seu firmware estivesse muito danificado, como alguns ainda estão.) Os boot{arch}.efinomes dos arquivos foram originalmente planejados exclusivamente para uso em discos removíveis inicializáveis, como para instaladores de sistema operacional e ferramentas de recuperação de emergência; mas eles também são usados ​​para carregadores de boot de último recurso em discos rígidos internos - digamos, para quando as entradas NVRAM foram danificadas.

Quanto à parte principal da sua pergunta, os binários do GRUB tendem a ser construídos por e para distribuições individuais; AFAIK, não existe uma fonte oficial para "o" binário GRUB para EFI. A maneira usual de obteraO binário GRUB é instalar uma distribuição Linux que o utiliza. Normalmente será instalado como /boot/efi/EFI/{distname}/grubx64.efi, onde {distname}é um código utilizado pela distribuição, como ubuntupara Ubuntu ou fedorapara Fedora. Observe, entretanto, que simplesmente mover e renomear esse binário pode não funcionar, pois ele pode ter caminhos codificados para seu arquivo de configuração. Se o computador de destino também usar inicialização segura, você precisará renomear o arquivo shimx64.efiou shim.eficomo o nome do arquivo substituto e copiar grubx64.efi, usando esse nome, para o mesmo diretório do Shim. Se estiver instalando em um computador, você não precisará se preocupar em mover ou renomear o GRUB; basta instalar normalmente e ele deverá assumir o processo de inicialização - pelo menos até você instalar a próxima distribuição ou algo reconfigurar a ordem de inicialização.

Para um sistema com múltiplas distribuições Linux, o GRUB pode ser um pouco complicado. Isso ocorre porque o GRUB depende de um arquivo de configuração complexo para criar seu menu de opções de inicialização, e esse arquivo de configuração é mantido na distribuição que instalou o GRUB. Isso funciona bem quando você instala apenas uma distribuição Linux, mas com diversas distribuições, você deve atualizar o GRUB na distribuição de onde ele veio para apresentar novos kernels instalados a partir do seuoutrodistribuições. A alternativa é carregar um GRUB de outro, o que pode funcionar melhor, mas é mais complicado no momento da inicialização.

Outra abordagem é usar um gerenciador de inicialização que envolva configuração menos complexa. Meu própriorEFIndposso fazer isso; ele detecta kernels Linux em cada inicialização, portanto, uma vez configurado, ele pode inicializar o kernel mais recente sem alterar sua própria configuração. Outros carregadores de boot, como SYSLINUX e ELILO, exigem configuração no estilo GRUB em um arquivo de configuração centralizado, mas esse arquivo é mais simples e, portanto, mais fácil de manter manualmente. Se você usar alguma dessas ferramentas em um disco removível, precisará copiá-la para o boot{arch}.efinome do arquivo.

Existem inúmeras outras advertências e peculiaridades em tudo isso, mas sem saber mais sobre o uso pretendido e o hardware, não posso abordar todas elas aqui sem escrever um pequeno livro. Você pode querer verificar um ou mais dos seguintes sites para obter mais informações:

Responder2

Se você está apenas tentando usar o grub para inicialização UEFI PXE ou inicialização UEFI HTTP, você obtém os binários pré-construídos aqui sem qualquer instalação: https://images.maas.io/ephemeral-v3/stable/bootloaders/uefi/amd64/20230222.0/

shim-signed.tar.xz
grub2-signed.tar.xz

Descompacte-os, você obterá

bootx64.efi
grubx64.efi

Em seguida, você prepara um servidor TFTP e um servidor HTTP para atendê-los e prepara grub/grub.cfg via TFTP/HTTP.

Tenho usado o método acima com sucesso.

Há também outro local conveniente que permite obtê-los sem qualquer instalação. http://archive.ubuntu.com/ubuntu/dists/jammy/main/uefi/grub2-amd64/current/

(você pode alterar o jammy para focal ou biônico)

...
grubnetx64.efi
grubnetx64.efi.signed
grubx64.efi
grubx64.efi.signed

Eu não tentei, acho que grubnetx64.efi.signedsignifica a versão líquida do grubx64.efi.signed. Mas não estou claro sobre a diferença entre *.efi.signed e *.efi.

E o bootx64.efi pode ser encontrado aqui http://archive.ubuntu.com/ubuntu/dists/jammy/main/signed/shim-amd64/current/, basta renomear o arquivo descompactado para bootx64.efi.

informação relacionada