• [^] # Re: Image Initramfs ? UKI ?

    Posté par (site web personnel, Mastodon) . En réponse au journal Installation personnalisée de Debian avec LUKS v2, volumes Btrfs, systemd-boot et Secure Boot. Évalué à 2.

    Dans l'article, je présente comment signer automatiquement les fichiers initramfs avec le fichier 99-sbctl pour sécuriser le démarrage.
    C'est le point qui m'a fait me poser la question si l'outil ne faisait pas un UKI (Noyau + initramfs + EFI Stub) pour le signer.
    Est-ce que tu disposes des lignes linux et initrd dans ton fichier de configuration systemd-boot ou d'une seule ligne linux ?

    Oui, j'ai bien les linux, initrd et les fichiers ".conf" qui contiennent les options de démarrage définies dans /etc/kernel/cmdline:

    $ find /boot/efi | grep -v Microsoft
    /boot/efi
    /boot/efi/EFI
    /boot/efi/EFI/systemd
    /boot/efi/EFI/systemd/systemd-bootx64.efi
    /boot/efi/EFI/BOOT
    /boot/efi/EFI/BOOT/BOOTX64.EFI
    /boot/efi/EFI/Linux
    /boot/efi/loader
    /boot/efi/loader/entries
    /boot/efi/loader/entries/9af3221b56764a7bb3cd7feeb31bbde9-6.1.0-22-amd64.conf
    /boot/efi/loader/entries/9af3221b56764a7bb3cd7feeb31bbde9-6.9.7+bpo-amd64.conf
    /boot/efi/loader/entries/9af3221b56764a7bb3cd7feeb31bbde9-6.9.10+bpo-amd64.conf
    /boot/efi/loader/entries/9af3221b56764a7bb3cd7feeb31bbde9-6.10.6+bpo-amd64.conf
    /boot/efi/loader/loader.conf
    /boot/efi/loader/random-seed
    /boot/efi/loader/entries.srel
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.9.10+bpo-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.9.10+bpo-amd64/linux
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.9.10+bpo-amd64/initrd.img-6.9.10+bpo-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.1.0-22-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.1.0-22-amd64/linux
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.1.0-22-amd64/initrd.img-6.1.0-22-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.9.7+bpo-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.9.7+bpo-amd64/linux
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.9.7+bpo-amd64/initrd.img-6.9.7+bpo-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.10.6+bpo-amd64
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.10.6+bpo-amd64/linux
    /boot/efi/9af3221b56764a7bb3cd7feeb31bbde9/6.10.6+bpo-amd64/initrd.img-6.10.6+bpo-amd64
    /boot/efi/System Volume Information
    $ cat /boot/efi/loader/entries/9af3221b56764a7bb3cd7feeb31bbde9-6.10.6+bpo-amd64.conf
    # Boot Loader Specification type#1 entry
    # File created by /usr/lib/kernel/install.d/90-loaderentry.install (systemd 254.16-1~bpo12+1)
    title Debian GNU/Linux 12 (bookworm)
    version 6.10.6+bpo-amd64
    machine-id 9af3221b56764a7bb3cd7feeb31bbde9
    sort-key debian
    options cryptdevice=UUID=516d25d7-053c-424e-9822-35c15ee60dd1:Debian root=/dev/mapper/Debian rootflags=subvol=@ quiet splash systemd.machine_id=9af3221b56764a7bb3cd7feeb31bbde9
    linux /9af3221b56764a7bb3cd7feeb31bbde9/6.10.6+bpo-amd64/linux
    initrd /9af3221b56764a7bb3cd7feeb31bbde9/6.10.6+bpo-amd64/initrd.img-6.10.6+bpo-amd64

    J'avais compris que UKI remplace le couple "initramfs et noyau". Ce n'est pas ça ?

    L'UKI peut contenir beaucoup de chose :
    - Noyau
    - Initramfs
    - Cmdline
    - SplashImage
    - DTB (majoritairement pour ARM/Risc-V)
    - Metadonnées OS-Release
    - EFIStub (pour être compatible UEFI)
    Mais en effet la grosse plus-value est de pouvoir s'assurer de l'intégrité de l'initramfs et de la cmdline en plus de celle du noyau.

    Ah oui, c'est pas mal tout ça, il faudra que j'essaie de le mettre en place en suivant l'article de copyninja. Il a d'ailleurs écrit un deuxième article pour activer Secure Boot avec l'utilisation d'UKI en utilisant sbsign à la place de sbctl (sbsign est déjà empaqueté par Debian, c'est à essayer).