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 é:
- 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
.
- 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.
- 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.
- 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.