Como fazer com que um kernel linux de pré-lançamento funcione com o SecureBoot (Fedora 26)

0

Estou rodando o Fedora 26, mas para suspender e retomar o trabalho, eu preciso usar um kernel Rawhide (4.13.rc-1 ou mais recente) ( Veja a questão do kernel ).

Eu instalei com sucesso o kernel do Rawhide (4.13.rc-4) usando estas instruções . Infelizmente, conforme a nota da página, esses kernels não funcionarão perfeitamente sem que o SecureBoot seja desativado.

Infelizmente, devido a um bug no BIOS, não consigo desativar o SecureBoot ( Consulte Fórum da Dell ).

Quando eu tento inicializar, o bootloader diz algo como:

...has an invalid signature. You will need to load the kernel first.

Como posso usar um kernel de Rawhide / pré-lançamento com o SecureBoot ativado?

    
por Jason O'Neil 18.08.2017 / 02:07

2 respostas

2

Esta questão foi respondida no site Q & A do Fedora:

link

Basicamente:

  • Como root, execute mokutil --disable-validation e defina uma senha.
  • Reinicie e, quando o grub for carregado, ele perguntará se você deseja executar o utilitário MOK. Eu tive que pressionar uma tecla dentro de 10 segundos para ter certeza de que entrei no utilitário.
  • Uma vez no utilitário, eu escolho "modificar configuração do MOK", digitei a senha e optei por desativar o SecureBoot. Note que isto não desabilitou o BIOS SecureBoot - ele apenas permite que o GRUB carregue um kernel não assinado. (O GRUB ainda está assinado, eu acho).
por 21.08.2017 / 09:10
1

Sei que você encontrou uma solução que envolve a desativação do Secure Boot via Shim / mokutil ; no entanto, existe uma outra maneira: você pode assinar o kernel você mesmo.

Em linhas gerais, o procedimento é:

  1. Gere sua própria chave de inicialização segura. Você faria isso com o programa openssl . Você precisará copiar o arquivo DER de chave pública para sua partição de sistema EFI (ESP), que normalmente é montada em /boot/efi .
  2. Assine seu arquivo de kernel. Eu uso uma ferramenta chamada sbsign para fazer isso. IIRC, o Fedora favorece outro programa que, o último que verifiquei, era mais complexo de usar. Você precisará renomear o kernel atual e colocar sua versão assinada em seu lugar ou criar uma nova entrada do GRUB para o seu novo kernel.
  3. Reinicie no EFI e inicie o MokManager. Alguns boot loaders, como o meu próprio rEFInd, oferecem uma maneira de inserir o MokManager manualmente. Se o seu não, você pode precisar saltar alguns aros para fazê-lo funcionar. Uma vez no MokManager, você precisa localizar o arquivo DER copiado para o ESP e adicioná-lo à sua lista MOK.
  4. Neste ponto, quando você reinicializar, poderá iniciar seu kernel recém-assinado, mesmo com o Secure Boot ativo.

Este procedimento é coberto com mais detalhes em esta página minha. É tedioso e pode não valer a pena o esforço comparado a desabilitar o Secure Boot - mas, novamente, talvez seja. Você terá que fazer o julgamento de saber se você quer saltar através destes aros para manter a inicialização com inicialização segura ativa.

Observe também que, se você instalar o rEFInd, ele poderá gerar um conjunto de chaves de inicialização segura e armazená-las como /etc/refind.d/keys/refind_local.* . (O script refind-install faz isso se os utilitários necessários estiverem disponíveis, mas não o fará se eles não estiverem disponíveis.) Portanto, se você já instalou o rEFInd, a etapa 1 já pode estar pronta. Você pode então usar a chave local rEFInd para assinar seu kernel.

Também há uma variante desse procedimento. Versões recentes de Shim e MokManager permitem que você registre o hash de um binário como uma maneira de autenticá-lo. Isso funciona mesmo com binários não assinados. Assim, você pode registrar o hash do seu kernel para permitir que ele seja inicializado. O problema é que você precisará registrar o hash de cada kernel não assinado que deseja lançar. Isso pode não ser um grande problema se você tiver apenas o kernel funcional e não planeja atualizá-lo; mas se você atualizar o kernel a cada duas semanas, você estará sempre registrando novos hashes, que serão um incômodo e consumir quantidades crescentes de espaço limitado na NVRAM. Assim, esta abordagem é um pouco mais fácil em alguns casos, mas é muito pior em outros.

    
por 24.08.2017 / 15:47