Attending this event?
Back To Schedule
Friday, January 28 • 12:30pm - 1:20pm
Building initrd images from rpms

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

We currently use dracut to build initrd images. Dracut is: a mechanism to specify what files should be included in the initrd image, a mechanism to build the cpio archive, but also a system in the initrd that provides an execution queue in the initrd that works in parallel to systemd. It turns out we can build initrd images in a much simpler way: just build an cpio archive directly from rpms, and let systemd manage all jobs required to boot the machine.

Why a new way to build initrd images? Dracut is a very very complex mechanism that was built for challenges of ten years ago. We already try to split and minimize rpms to make containers smaller. We can immediately reuse this work for initrd images, instead of building a parallel system to specify which files should be included in the initrd. Systemd provides a very well tested execution queue. We don't need the parallel runqueue that was created before systemd existed. It turns out that we can build a working system already with minimal effort. Figuring out all the corner cases will require work, either to fix bugs or to reduce dependencies, but this work will be immediately useful e.g. for containers or the emergency target in the host system or minimal installations.

This project was presented in very early form during Nest 2021. We have various work items planned for Autumn 2021, and during DevConf we hope to present a generally-usable prototype.

Session chairs: Zdenek Dohnal and Lucie Vrtelova

avatar for Zbigniew Jędrzejewski-Szmek

Zbigniew Jędrzejewski-Szmek

software engineer, Red Hat
systemd maintainer

Friday January 28, 2022 12:30pm - 1:20pm CET
Session Room 4