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 |