Nessa dica mostro como assinar um kernel diferente do da sua distro. Uso no Debian e Ubuntu. Não testei nas demais. Eu usava muito o systemd-boot-efi mas nas últimas versões do Debian e Ubuntu os arquivos mudaram e está muito complicado utilizar este recurso na mão. Os passos abaixo ficam por sua conta e risco.
- no debian, instale o pacote:
$ sudo apt install sbsigntool
-
instale o kernel de sua preferência (não sera visto aqui)
-
vá em /boot como root:
$ sudo su
# cd /boot
- liste os kernels (ou kerneis)
# ls vmlinuz-*
vmlinuz-original
vminuz-novo
- gerando a chave para assinatura:
# openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj “/CN=NOME_KERNEL/”
# openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
- importando a chave. Será pedida senha para uso no boot. Use teclas comum do teclado americano. Caracteres especiais serão ignorados no boot e a assinatura falhará:
# mokutil --import MOK.der
senha:
repita senha:
- assine o kernel novo:
# sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-novo --output /boot/vmlinuz-novo.signed
- substitua o vmlinuz não assinado pelo assinado:
# mv /boot/vmlinuz-novo.signed /boot/vmlinuz-novo
# update-grub
-
mantenha as chaves MOK* onde foram garadas: /boot
-
reincie seu computador e vamos para a assinatura do kernel. Cada computador terá um método diferente. Abaixo mostro o meu apenas como guia.
-
No boot, entre com a senha criada em “6)”:
- Entre no “Enroll MOK”:
- Redigite a senha criada em “6)”:
- Reinicie:
- Entre no kernel assinado:
- Pronto: