EFI \ boot \ bootx64.efi vs EFI \ ubuntu \ grubx64.efi vs /boot/grub/x86_64-efi/grub.efi vs C: \ Windows \ Boot \ EFI \ * (Português)

Eu instalei o Ubuntu 19 64 bits junto com o Windows 10 64 bits e descobri que tenho 3 arquivos EFI diferentes em locais diferentes:

EFI\boot\bootx64.efi EFI\ubuntu\grubx64.efi /boot/grub/x86_64-efi/grub.efi 

Quais são as diferenças entre esses três?

Comentários

  • Normalmente, ambos Windows & grub2 instalam bootx64. efi como um fallback ou entrada de inicialização UEFI do disco rígido. Esse também é o caminho padrão do arquivo & para todos os dispositivos externos. Você deve ter /EFI/ubuntu/grubx64.efi e /EFI/ubuntu/shimx64.efi. Shim é para inicialização segura, mas inicializará com inicialização segura desativada. não tenho certeza porque ainda temos grub então? Não tenho certeza de onde você grub.efi veio. Em algum momento, você deve instalar outra distribuição que usa a entrada grub padrão.
  • Estou pesquisando para obter uma unidade usb de distro multi linux com EFI (já criei uma para MBR, mas não ' t trabalhar em computadores recentes com BIOS que suportam apenas EFI) e encontrei esta página que responderá às suas perguntas e explicará EFI de uma maneira muito detalhada. Como é grande para uma resposta, ' colocarei o link caso você queira entender como tudo funciona: rodsbooks. com / efi-bootloaders

Resposta

EFI\boot\bootx64.efi: Caminho do carregador de inicialização de fallback

Este é o único caminho do carregador de inicialização que o firmware UEFI em sistemas X86 de 64 bits procurará sem nenhuma configuração de inicialização NVRAM pré-existente, então é isso que você deseja usar mídia removível.

O Windows instalará uma cópia de seu carregador de inicialização neste caminho automaticamente; ao instalar o GRUB, o comando grub-install (ou grub2-install dependendo da distribuição do Linux) também pode colocar uma cópia do respectivo bootloader aqui, se isso acontecer ainda não existe. Se desejar, você pode usar grub-install --removable para instruí-lo a instalar no caminho de inicialização de fallback ou grub-install --force-extra-removable para substituir qualquer gerenciador de inicialização existente no caminho de fallback e substituí-lo por GRUB.

Se você deseja criar um stick USB compatível com inicialização segura para UEFI, deve colocar uma cópia do shim como EFI\boot\bootx64.efi e uma cópia do GRUB como EFI\boot\grubx64.efi, pois o carregador de inicialização shim procurará grubx64.efi no mesmo diretório em que o carregador de inicialização shim está in.

Caminho do carregador de inicialização para um sistema operacional instalado permanentemente

Quando um sistema operacional é instalado permanentemente em um sistema UEFI, há uma nova etapa que absolutamente não existia em BIOS clássico. Ao instalar o bootloader, quatro coisas são gravadas na memória NVRAM que contém as configurações do firmware:

  • Nome do caminho do bootloader na partição do sistema EFI (ESP) que contém o bootloader (s)
  • o GUID da partição ESP
  • um nome descritivo (amigável) para esta instância particular do bootloader
  • opcionalmente, alguns dados para o bootloader

Para Windows, o nome do caminho UEFI padrão para o processo de inicialização do Windows será \EFI\Microsoft\Boot\bootmgfw.efi, e o nome descritivo será " Windows Gerenciador de inicialização ". Os dados opcionais parecem conter uma referência GUID para algo dentro do arquivo de configuração BCD do carregador de inicialização do Windows.

Para Ubuntu, o nome do caminho deve ser \EFI\Ubuntu\grubx64.efi se você não “t precisa de suporte para inicialização segura ou \EFI\Ubuntu\shimx64.efi se o calço de inicialização segura for usado. O nome descritivo é simplesmente " ubuntu " e os dados opcionais não são usados.

No Ubuntu, esses UEFI As configurações de inicialização NVRAM podem ser visualizadas usando o comando sudo efibootmgr -v; no Windows, você pode iniciar um Prompt de comando como administrador e, em seguida, usar o comando bcdedit /enum firmware para visualizar as configurações.

A especificação UEFI tem uma convenção padrão que cada fornecedor deve colocar o bootloader para um sistema operacional permanentemente instalado dentro do caminho \EFI\<vendor name> no ESP, portanto, ter vários bootloaders UEFI coexistindo no mesmo ESP é realmente suportado e deve tornar as coisas mais fáceis do que com o BIOS clássico que tinha um único Master Boot Record por disco.

/boot/grub/x86_64-efi/grub.efi: um arquivo temporário para grub-install

Quando grub-install for usado, primeiro usará o utilitário grub-mkimage para criar um Imagem principal do GRUB : em um sistema UEFI, este arquivo será salvo em /boot/grub/x86_64-efi/grub.efi e / ou .../core.efi antes dele será copiado para a partição do sistema EFI e adicionado às configurações de inicialização UEFI NVRAM por grub-install.A cópia em /boot/grub/x86_64-efi/*.efi não será usada de forma alguma no processo de inicialização, mas pode ser útil se o ESP for danificado por qualquer motivo.

Observação: No Debian / Ubuntu, a imagem de núcleo GRUB gerada incluirá uma referência UUID embutida para qualquer sistema de arquivos que contenha o /boot diretório, então você não poderá apenas fazer uma cópia de /boot/grub/x86_64-efi/grub.efi ou grubx64.efi de o ESP e transplantá-lo para uma mídia removível: ele apenas tentará encontrar o UUID exclusivo do seu /boot sistema de arquivos e entrará no modo de resgate se não o encontrar. Se bem me lembro, o GRUB do RedHat / CentOS / Fedora deve ser mais adequado para transplante para mídia removível.

Inicialização segura: shimx64.efi e as razões para isso

A inicialização segura requer que um carregador de inicialização seja assinado por um certificado incluído na variável NVRAM de inicialização segura do sistema db, ou o carregador de inicialização SHA256 hash deve ser colocado na lista de permissões na mesma variável NVRAM. Um hash SHA256 corresponderá apenas a uma versão específica de um carregador de inicialização específico, portanto, as atualizações não serão possíveis a menos que a variável de firmware também seja atualizada. Portanto, os certificados são o caminho a percorrer.

Infelizmente, muitos fornecedores de sistema incluirá apenas alguns certificados de inicialização segura em seus produtos: geralmente, apenas o certificado do próprio fornecedor (para atualizações de firmware e depuração de hardware / ferramentas de configuração OEM) e certificados de inicialização segura da Microsoft. Alguns sistemas permitirão a edição da lista de inicialização segura certificados por meio de configurações de firmware (= " Configurações de BIOS "), mas outros não “t. Portanto, uma solução independente era necessária.

A Microsoft oferece um serviço de assinatura de bootloader UEFI para qualquer pessoa, mas pelo menos inicialmente o tempo de retorno para assinatura era muito longo, então a exigência de assinar cada versão do GRUB diretamente teria causado atrasos inaceitáveis nas atualizações do bootloader. Para resolver o problema, o carregador de inicialização shim foi desenvolvido: é basicamente o programa UEFI mais simples e razoável que adicionará um ou mais certificados à lista de inicialização segura aceita. A simplicidade provavelmente reduzirá a necessidade de atualizar o shim em si, -Distribuições de SO de origem (Linux e outros) podem apenas obter sua versão do shim assinado pela Microsoft apenas uma vez e, em seguida, assinar qualquer versão do GRUB com seus próprios certificados, cuja parte pública está embutida no shim e permite que a inicialização segura aceite a distribuição ” s versão do GRUB.

Comentários

  • Obrigado pela resposta. BTW, AFAIK bootmgfw.efi é ' nt carregador de inicialização do Windows, é ' s Gerenciador de inicialização do Windows, que chama o carregador de inicialização do Windows \Windows\System32\winload.efi. Além disso, o que você quer dizer com NVRAM? CMOS?
  • Tentei não ser muito prolixo e parece que simplifiquei demais em relação ao problema do " carregador de inicialização do Windows " . E sim, por NVRAM quero dizer o armazenamento não volátil que contém as configurações de firmware, que em PCs clássicos também era conhecido como memória CMOS, mas em sistemas modernos pode realmente usar alguma tecnologia diferente de CMOS (Complementary Metal Oxide Semiconductor).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *