DEBEFIVM-UKIFY(1)

πŸ“¦
version 0.5.2ubuntu1 Β· 3 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– DEBEFIVM-UKIFY(1) πŸ’–

okay so bestie, welcome to the debefivm-ukify page β€” part of the User Contributed Perl Documentation collection, and literally your new fave way to build Unified Kernel Images. grab a snack, we're doing UEFI today πŸŽ€


✨ NAME ✨

debefivm-ukify β€” makes Unified Kernel Images for UEFI systems, in basically the same way systemd's ukify does it. same vibe, different implementation. slay πŸ’…


🌸 SYNOPSIS 🌸

debefivm-ukify build --linux=vmlinuz --output=uki.efi [options]

that's it. that's the whole shape of it. build is the only subcommand and honestly she's enough πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea, bestie: debefivm-ukify is a reimplementation of parts of systemd-ukify, and it's mainly meant for backports. and like… the maintainers themselves say it: please prefer systemd's implementation. no cap. this one is the understudy, not the main character, and she knows it 😭

what she does not do, so we're all clear:

  • she only supports the build subcommand β€” that's it, that's the menu
  • she does not implement any functionality related to secure boot
  • she has no configuration file support at all

but other than that? she absolutely ate. you can use her to assemble a Linux kernel image, an initrd, and an EFI stub image from systemd into one glorious EFI-bootable Unified Kernel Image. iconic behaviour fr fr ✨


πŸ’… OPTIONS πŸ’…

  • --deb-arch=debian_architecture β€” sets the architecture of the artifacts you hand over and the ones she produces, using Debian's architecture nomenclature. want to say it the EFI way instead? peep --efi-arch, she's got you. heads up though: this option is not available on the systemd implementation, so it's our little exclusive 🫢
  • --devicetree=devicetree_blob β€” adds a device tree file as a dtb section in the generated UKI. and bestie, there can be at most one device tree. one. singular. don't be greedy πŸ’€
  • --cmdline=kernel_cmdline β€” supplies extra arguments that get appended to the Linux kernel command line during boot. you can give this at most once. and plot twist: if the value starts with an @, she treats it as a filename and adds that file's contents instead πŸ“„βœ¨
  • --efi-arch=efi_architecture β€” same energy as above but for architecture, set using EFI's architecture nomenclature. want the Debian flavour instead? that's --deb-arch. pick your fighter πŸ’–
  • --initrd=initrd β€” supplies an initrd image to be embedded. at most one initrd. just the one, babe πŸŽ€
  • --linux=vmlinuz β€” supplies a Linux kernel image to be embedded. and this one? this option must be given exactly once. non-negotiable. mandatory. the moment. periodt πŸ”₯
  • --os-release=release_information β€” sets the os-release description in the UKI. at most once, okay? and yep, same @ trick: if the value starts with an @, it's treated as a filename and the contents get added πŸ“
  • --output=<uki.efi> β€” names the resulting UKI image. must be given exactly once, and the target file must not already exist. like, she will not overwrite your stuff, so don't come for her πŸ™ˆ
  • --section=<name:value> β€” adds an arbitrary ELF section to the resulting UKI. and yes, the @ thing again: value starting with @ = it's a filename, contents get added. fun fact bestie, most image components actually are such ELF sections β€” for instance --os-release just adds a section named osrel. iykyk 🧚
  • --stub=efi_stub β€” supplies the location of systemd's EFI stub image. and here's where she's different from the systemd implementation: this option also accepts a directory containing stubs named by architecture. by default, stubs get looked up in /usr/lib/systemd/boot/efi 🌈
  • --verbose β€” prints diagnostic information during image conversion. because sometimes you just need to see what's happening, and honestly, same. this option is not available on the systemd implementation either β€” another exclusive πŸ’œ

⭐ SEE ALSO ⭐

  • ukify(1) β€” go read her too, she's the blueprint πŸ‘‘

and that's the whole page, bestie!! you made it to the end, so here's your cute little sign-off: this gorgeous thing runs on perl v5.40.1 and was dated 2026-03-23. take care of her, build something beautiful, and go touch some grass afterwards πŸŒΈπŸ¦‹πŸ’–

πŸ“¦ where this page comes from