Compatability

Expect compatibility preserved for

  • dracut command line options

  • kernel command line options

  • dracut module names

  • dracut module interface

Do not expect compatibility preserved for

  • undocumented filenames and function names for dracut module implementations

  • very old dependent binary versions (including udev and systemd)

Changes impacting compatibility are explained in commit messages and in the NEWS file.

When possible dracut will follow a depreciation process, whereby for one releases (and one releases only) dracut will preserve compatibility to allow for migration.

The compatibility promise is primary towards end users and not towards Linux distributions packaging dracut. Distribution packaging will need changes time-to-time between dracut releases (e.g. as files gets added and removed).

Dependencies

Dependencies for the generated initramfs:

  • glibc or musl

  • shell (bash and/or dash). Some features are only supported with bash.

  • udev. Forks of systemd’s udev and related tools are unsupported.

  • switch_root, mount, blkid, kmod

Minimal versions of notable dependencies in test containers

udevadm

v251

systemd

v252

linux-kernel

v6.1

bash

v5.1

eudev

3.2.14

busybox

1.34

qemu

7.2

Max versions of notable dependencies in test containers

udev, systemd, ukify

v256

linux-kernel

v6.10

bash

v5.2

Test containers

arch (rolling)

newest version of systemd, systemd-networkd

debian (v12)

arm64 and amd64, deb packages, oldest versions of software

fedora (v40)

arm64 and amd64, NetworkManager

gentoo (rolling)

systemd-networkd (intentionally no NetworkManager)

opensuse (rolling)

network-legacy and NetworkManager

ubuntu (v24.04)

deb packages, usually newer than Debian, NetworkManager and systemd-networkd both installed

alpine (v3.20)

musl, openrc, eudev

void (rolling)

runit, eudev