OS Manuals

/usr/bin/ukify

tool for creating unified kernel images

From systemd-ukify 262.2-r1 (os), captured 2026-11-05 by running ukify --help (exit 0). permalink

usage:
  ukify build [--linux=LINUX] [--initrd=INITRD] [options…]
  ukify genkey [options…]
  ukify inspect FILE… [options…]

Build and sign Unified Kernel Images

options:
  --version             show program's version number and exit
  --summary             print parsed config and exit
  --config, -c PATH     configuration file
  --linux LINUX         vmlinuz file [.linux section]
  --os-release TEXT|@PATH
                        path to os-release file [.osrel section]
  --cmdline TEXT|@PATH  kernel command line [.cmdline section]
  --initrd INITRD       initrd file [part of .initrd section]
  --efifw DIR           Directory with efi firmware binary file [.efifw section]
  --microcode UCODE     microcode file [.ucode section]
  --splash BMP          splash image bitmap file [.splash section]
  --devicetree PATH     Device Tree file [.dtb section]
  --devicetree-auto PATH
                        DeviceTree file for automatic selection [.dtbauto section]
  --hwids DIR           Directory with HWID text files [.hwids section]
  --uname VERSION       "uname -r" information [.uname section]
  --sbat TEXT|@PATH     SBAT policy [.sbat section]
  --pcrpkey KEY         embedded public key to seal secrets to [.pcrpkey section]
  --section NAME:TEXT|@PATH
                        section as name and contents [NAME section] or section to print
  --profile TEST|@PATH  Profile information [.profile section]
  --join-profile PATH   A PE binary containing an additional profile to add to the UKI
  --sign-profile ID     Which profiles to sign expected PCR measurements for
  --pcrsig TEST|@PATH   Signed PCR policy JSON [.pcrsig section] to append to an existing UKI
  --join-pcrsig PATH    A PE binary containing a UKI without a .pcrsig to join with --pcrsig
  --efi-arch ARCH       target EFI architecture
  --stub STUB           path to the sd-stub file [.text,.data,… sections]
  --pcr-banks BANK…
  --signing-engine ENGINE
                        OpenSSL engine to use for signing
  --signing-provider PROVIDER
                        OpenSSL provider to use for signing
  --certificate-provider PROVIDER
                        OpenSSL provider to load certificate from
  --signtool {sbsign,pesign,systemd-sbsign}
                        whether to use sbsign or pesign. It will also be inferred by the other
                        parameters given: when using --secureboot-{private-key/certificate},
                        sbsign will be used, otherwise pesign will be used
  --secureboot-private-key SB_KEY
                        required by --signtool=sbsign|systemd-sbsign. Path to key file or
                        engine/provider designation for SB signing
  --secureboot-certificate SB_CERT
                        required by --signtool=sbsign. sbsign needs a path to certificate file or
                        engine-specific designation for SB signing
  --secureboot-certificate-common-name CN
                        common name of a certificate created by 'genkey'
  --secureboot-certificate-dir SB_CERTDIR
                        required by --signtool=pesign. Path to nss certificate database directory
                        for PE signing. Default is /etc/pki/pesign
  --secureboot-certificate-name SB_CERT_NAME
                        required by --signtool=pesign. pesign needs a certificate nickname of nss
                        certificate database entry to use for PE signing
  --secureboot-certificate-validity DAYS
                        period of validity (in days) for a certificate created by 'genkey'
  --sign-kernel, --no-sign-kernel
                        Sign the embedded kernel
  --sign-initrd-pcrs, --no-sign-initrd-pcrs
                        additionally sign PCR policies that can only be satisfied from the initrd
  --pcr-private-key PCR_PRIVATE_KEYS
                        private part of the keypair or engine/provider designation for signing PCR
                        signatures
  --pcr-public-key PATH
                        public part of the keypair or engine/provider designation for signing PCR
                        signatures
  --pcr-certificate PATH
                        certificate part of the keypair or engine/provider designation for signing
                        PCR signatures
  --phases PHASE-PATH…  phase-paths to create signatures for
  --policyref STRING    policy references to bind signatures to
  --tools TOOLS         Directories to search for tools (systemd-measure, …)
  --output, -o OUTPUT   output file path
  --measure, --no-measure
                        print systemd-measure output for the UKI
  --policy-digest, --no-policy-digest
                        print systemd-measure policy digests for the UKI
  --json {pretty,short,off}
                        generate JSON output
  -j                    equivalent to --json=pretty
  --all                 print all sections
  -h, --help            show this help message and exit

config file:
  [UKI]
  Linux = LINUX
  OSRelease = TEXT|@PATH
  Cmdline = TEXT|@PATH
  Initrd = INITRD
  Firmware = DIR
  Microcode = UCODE
  Splash = BMP
  DeviceTree = PATH
  DeviceTreeAuto = PATH
  HWIDs = DIR
  Uname = VERSION
  SBAT = TEXT|@PATH
  PCRPKey = KEY
  Profile = TEST|@PATH
  PCRSig = TEST|@PATH
  EFIArch = ia32|x64|arm|aa64|riscv32|riscv64|loongarch32|loongarch64
  Stub = STUB
  PCRBanks = BANK…
  SigningEngine = ENGINE
  SigningProvider = PROVIDER
  CertificateProvider = PROVIDER
  SecureBootSigningTool = sbsign|pesign|systemd-sbsign
  SecureBootPrivateKey = SB_KEY
  SecureBootCertificate = SB_CERT
  SecureBootCertificateCommonName = CN
  SecureBootCertificateDir = SB_CERTDIR
  SecureBootCertificateName = SB_CERT_NAME
  SecureBootCertificateValidity = DAYS
  SignKernel = SIGN_KERNEL
  SignInitrdPCRs = SIGN_INITRD_PCRS

  [PCRSignature:NAME]
  PCRPrivateKey = PCR_PRIVATE_KEYS
  PCRPublicKey = PATH
  PCRCertificate = PATH
  Phases = PHASE-PATH…
  PolicyRef = STRING
Options (50)
OptionDescriptionSource
--versionshow program's version number and exithelp
--summaryprint parsed config and exithelp
--config, -c PATHconfiguration filehelp
--linux LINUXvmlinuz file [.linux section]help
--os-release TEXT|@PATHpath to os-release file [.osrel section]help
--cmdline TEXT|@PATHkernel command line [.cmdline section]help
--initrd INITRDinitrd file [part of .initrd section]help
--efifw DIRDirectory with efi firmware binary file [.efifw section]help
--microcode UCODEmicrocode file [.ucode section]help
--splash BMPsplash image bitmap file [.splash section]help
--devicetree PATHDevice Tree file [.dtb section]help
--devicetree-auto PATHDeviceTree file for automatic selection [.dtbauto section]help
--hwids DIRDirectory with HWID text files [.hwids section]help
--uname VERSION"uname -r" information [.uname section]help
--sbat TEXT|@PATHSBAT policy [.sbat section]help
--pcrpkey KEYembedded public key to seal secrets to [.pcrpkey section]help
--section NAME:TEXT|@PATHsection as name and contents [NAME section] or section to printhelp
--profile TEST|@PATHProfile information [.profile section]help
--join-profile PATHA PE binary containing an additional profile to add to the UKIhelp
--sign-profile IDWhich profiles to sign expected PCR measurements forhelp
--pcrsig TEST|@PATHSigned PCR policy JSON [.pcrsig section] to append to an existing UKIhelp
--join-pcrsig PATHA PE binary containing a UKI without a .pcrsig to join with --pcrsighelp
--efi-arch ARCHtarget EFI architecturehelp
--stub STUBpath to the sd-stub file [.text,.data,… sections]help
--pcr-banks BANK…help
--signing-engine ENGINEOpenSSL engine to use for signinghelp
--signing-provider PROVIDEROpenSSL provider to use for signinghelp
--certificate-provider PROVIDEROpenSSL provider to load certificate fromhelp
--signtool sbsignwhether to use sbsign or pesign.help
--secureboot-private-key SB_KEYrequired by --signtool=sbsign|systemd-sbsign.help
--secureboot-certificate SB_CERTrequired by --signtool=sbsign.help
--secureboot-certificate-common-name CNcommon name of a certificate created by 'genkey'help
--secureboot-certificate-dir SB_CERTDIRrequired by --signtool=pesign.help
--secureboot-certificate-name SB_CERT_NAMErequired by --signtool=pesign.help
--secureboot-certificate-validity DAYSperiod of validity (in days) for a certificate created by 'genkey'help
--sign-kernel, --no-sign-kernelSign the embedded kernelhelp
--sign-initrd-pcrs, --no-sign-initrd-pcrsadditionally sign PCR policies that can only be satisfied from the initrdhelp
--pcr-private-key PCR_PRIVATE_KEYSprivate part of the keypair or engine/provider designation for signing PCR signatureshelp
--pcr-public-key PATHpublic part of the keypair or engine/provider designation for signing PCR signatureshelp
--pcr-certificate PATHcertificate part of the keypair or engine/provider designation for signing PCR signatureshelp
--phases PHASE-PATH…phase-paths to create signatures forhelp
--policyref STRINGpolicy references to bind signatures tohelp
--tools TOOLSDirectories to search for tools (systemd-measure, …)help
--output, -o OUTPUToutput file pathhelp
--measure, --no-measureprint systemd-measure output for the UKIhelp
--policy-digest, --no-policy-digestprint systemd-measure policy digests for the UKIhelp
--json prettygenerate JSON outputhelp
-jequivalent to --json=prettyhelp
--allprint all sectionshelp
-h, --helpshow this help message and exithelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.