Como inicializar carregar o kernel usando o carregador EFI stub (efistub) com inicialização segura?

0

Eu segui os procedimentos em Como inicializar carregar o kernel usando o carregador EFI stub (efistub)? .

Na minha situação, a inicialização segura está ativada. Então eu mudei um pouco o zz-update-efistub.sh com

cp /$(readlink /vmlinuz).eif.signed /boot/efi/EFI/ubuntu/vmlinuz

Mas ainda assim minha máquina nega a inicialização a partir desta imagem.

    
por march1993 23.08.2017 / 00:58

1 resposta

1

O problema que você está encontrando é resultado do fato de que os kernels do Ubuntu (aqueles com nomes de arquivos que terminam em .efi.signed ) são assinados pela tecla Secure Boot da Canonical. Essa chave não está incluída no firmware da maioria dos computadores e, portanto, será rejeitada pela maioria dos subsistemas de inicialização segura dos computadores. (Existem algumas exceções a essa regra. Eu tenho uma placa-mãe ASUS P8-H77I, por exemplo, que vem com a chave pública da Canonical incorporada como padrão. Se a sua estivesse configurada, você não estaria tendo esse problema.)

De um modo geral, você tem três opções:

  • Assuma o controle total da Inicialização Segura - Você pode assumir o controle total da Inicialização Segura e instalar qualquer tecla de Inicialização Segura desejada. Se você adicionar a chave da Canonical, poderá lançar os kernels assinados do Ubuntu diretamente. Este processo é tedioso, no entanto. Para obter detalhes sobre como fazer isso, consulte a minha página da Web sobre o assunto. Em resumo, você precisará gerar suas próprias chaves, excluir o conjunto de chaves atual do computador, adicionar suas próprias chaves, adicionar a chave da Canonical e, opcionalmente, adicionar outras chaves que você queira usar (como as chaves da Microsoft). Existem várias maneiras de fazer isso, algumas das quais dependem da própria interface de usuário do firmware e, portanto, não podem ser descritas com 100% de precisão de maneira genérica.
  • Use Shim - Você pode usar o programa shimx64.efi que acompanha o Ubuntu para iniciar seu kernel. Para fazer isso, você colocaria shimx64.efi no mesmo diretório que o kernel (renomeado) e adicionaria shimx64.efi à lista de inicialização (via efibootmgr ) em vez do kernel. Um truque extra é que você terá que passar o nome de arquivo e as opções do kernel para shimx64.efi através das opções efibootmgr apropriadas. Isso seria semelhante ao comando efibootmgr -c... na etapa 3 da resposta que você mencionou, mas o arquivo do programa seria shimx64.efi e o nome do arquivo do kernel se tornaria uma opção passada por -u . Observe que nem todas as versões de shimx64.efi suportam as opções de passagem dessa maneira. Não me lembro exatamente quando esse recurso foi adicionado, mas você deve estar bem com uma versão recente. Note que eu nunca tentei fazer exatamente isso sozinho, então não posso fornecer instruções passo-a-passo; você provavelmente terá que experimentar para descobrir os detalhes sozinho. Isso também significa que há uma chance de que isso não funcione, embora, em teoria, ele deva funcionar.
  • Use uma configuração mais convencional - IMHO, lançando o kernel diretamente, enquanto você está tentando, não é uma boa abordagem, mesmo sem Secure Boot na imagem. Embora o uso do GRUB, rEFind ou algum outro carregador de inicialização ou gerenciador de inicialização seja tecnicamente uma complicação do processo de inicialização, esses programas de inicialização fornecem ferramentas para gerenciar o processo de inicialização que simplificam a configuração real . Assim, é melhor usar uma dessas ferramentas, IMHO. Se você tiver uma queixa específica com o GRUB, talvez queira compartilhar isso; É concebível que outro programa de inicialização resolva seu problema. Se você está apenas fazendo isso como um exercício de aprendizado, lançar o kernel diretamente tem mérito. Você certamente aprenderá algo sobre o processo de inicialização do EFI e, no seu caso, o Secure Boot, fazendo-o funcionar.

Se você quer uma solução fácil, usar um gerenciador de inicialização convencional ou gerenciador de inicialização é o caminho a percorrer. Se você quer aprender mais, você pode querer assumir o controle total do Secure Boot - mas esteja ciente de que há muitas armadilhas nesse caminho, então é provável que demore um pouco, mesmo com a ajuda de um guia como o que eu escrevi e referenciei anteriormente. Usar o Shim é uma espécie de meio termo - é mais fácil de configurar do que a abordagem de controle total, mas você aprenderá menos a fazer dessa maneira.

    
por Rod Smith 23.08.2017 / 17:07