Em primeiro lugar: gerar chave própria
openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
-subj "/CN=Kernel Key" -outform DER -out kernel.der \
-keyout kernel.key
Tente compilar o kernel do linux com CONFIG_EFI_STUB e incorpore o initramfs nele, conforme descrito aqui: link , para assinar módulos, você pode usar o próximo script:
/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 kernel.key kernel.der module.ko
Em seguida, crie o arquivo com o cmdline do kernel para sua estação de trabalho laptop \ e crie uma imagem e copie-a para o diretório de inicialização efi da seguinte forma:
# objcopy \
--add-section .osrel=/etc/os-release --change-section-vma .osrel=0x20000 \
--add-section .cmdline=/tmp/cmdline --change-section-vma .cmdline=0x30000 \
--add-section .linux=/boot/vmlinuz --change-section-vma .linux=0x2000000 \
--add-section .initrd=/boot/initrd.img --change-section-vma .initrd=0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub linux.efi
# mkdir -p /boot/efi/EFI/BOOT
# sbsign --key /root/keys/ISK.key --cert /root/keys/ISK.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI linux.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
Para instalar a própria chave no firmware do MB, você pode criar cmds assim:
openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$(uuidgen)" kernel.pem kernel.esl
sign-efi-sig-list -k KEK.key -c KEK.pem kernel kernel.esl kernel.auth