Прежде всего: сгенерируйте собственный ключ
openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
-subj "/ CN = Kernel Key" -outform DER -out kernel.der \
-keyout kernel.key
Попробуйте скомпилировать ядро Linux с помощью CONFIG_EFI_STUB и внедрить в него initramfs, как описано здесь: https://prosauce.org/blog/2015/10/31/booting-linux-securely , чтобы подписать модули, вы можете использовать следующий скрипт:
/ usr / src / linux-headers - $ (uname -r) / scripts / sign-file sha256 kernel.key kernel.der module.ko
Затем создайте файл с ядром cmdline для вашего ноутбука \ рабочей станции, создайте один образ и скопируйте его в загрузочный каталог efi следующим образом:
# 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
Чтобы установить собственный ключ в прошивку MB, вы можете сделать cmds следующим образом:
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.esl kernel.auth