Skip to content

Latest commit

 

History

History
3386 lines (2981 loc) · 193 KB

NEWS.md

File metadata and controls

3386 lines (2981 loc) · 193 KB

Rendered view

dracut-ng-102

This release includes fixes for compatibility with the latest Linux kernel (v6.9), Linux firmware, and systemd (v256).

New dracut modules introduced by this release:

  • pcmcia: factor out pcmcia support into its own module
  • systemd-bsod: display a blue screen which contains a message relating to a boot failure
  • numlock: module to turn Num Lock on
  • systemd-cryptsetup: factor out systemd-cryptsetup support into its own module

dracut modules removed by this release:

  • dasd_rules: remove dasd handling consolidated in s390-tools
  • qeth_rules: remove qeth handling consolidated in 95znet
  • zfcp_rules: remove zfcp handling consolidated in s390-tools

The project builds test containers daily for the following Linux distributions:

  • Alpine
  • Arch
  • Debian (amd64 and arm64)
  • Fedora (amd64 and arm64)
  • Gentoo
  • openSUSE
  • Ubuntu
  • Void

These Linux distributions test dracut in various configurations (systemd/OpenRC/runit, glibc/musl, dhclient/NetworkManager/systemd-networkd).

Performance

  • crypt: move more rules to systemd-cryptsetup (6325af42)
  • dracut-init.sh: stop parsing args in dracut_instmods if --silent is found (16863113)
  • dracut-systemd: check for systemd binary (51d0257b)
  • drm: group dracut_instmods calls (80f2caf4)
  • systemd:
  • systemd-udevd: remove duplicate rules (28846382)

Bug Fixes

  • /etc/modprobe.d --> /run/modprobe.d (424717af)
  • crypt-gpg-lib.sh (1ca38f04)
  • module-setup.sh missing stty (1af35319)
  • network-manager should include kernel-network-modules (cabd38d8)
  • clean Makefile rule (b89a0fb2)
  • 01systemd-ldconfig: install ldconfig.real (125bb0a8)
  • 35-network-manager: let the kernel generate a UUID for /etc/machine-id (1e2b5c30)
  • 90kernel-modules: add psmouse for some Fujitsu laptops (343ce3bb)
  • Dockerfile-Gentoo:
    • resolve glibc/libxcrypt conflict (b6b8cf3e)
    • pull in virtual/pkgconfig (4d5e9079)
    • add --deep, --autounmask-continue, and depclean (b182af73)
  • base:
    • add support for rd.udev.log_level (a471ca60)
    • install /etc/udev/udev.conf in hostonly mode only (2ab9ecce)
    • log the full udev database in rdsosreport (3fc15986)
  • configure: resolve regression for crosscompiling (25dabef1)
  • cpio: eliminate compile time warning (18788930)
  • crypt:
    • unlock encrypted devices by default during boot (2339acfa)
    • add systemd-ask-password dependency if systemd is used (caafea4e)
  • dmsquash-live:
    • do not check ISO md5 if image filesystem (c6906fea)
    • use load_fstype to load driver for filesystems (541ae946)
    • update documentation (d2d41a36)
  • dracut:
  • dracut-fuctions.sh: correct wrong regex pattern for LVM dm devices (4c2f756f)
  • dracut-init.sh:
    • force to perform the actual action (ffeb32b2)
    • handle decompress with --sysroot (91cdd57f)
  • dracut-install:
    • release memory allocated for regular expressions (d93bac05)
    • continue parsing if ldd prints "cannot be preloaded" (ace9e1b5)
  • dracut-lib: only remove initqueue/finished scripts, not the hook dir (e8257deb, closes #2620)
  • dracut-systemd:
    • include systemd-ask-password module (0bfe0867)
    • replace rd.udev.log-priority with rd.udev.log_level (c1275d87)
  • dracut.sh:
    • include efi mountpoint for hostonly (4a6a4ac6)
    • don't unset LD_PRELOAD (1eff6933)
    • do not add device if find_block_device fails (0f6c46aa)
    • make uki's reproducible (aabb5a41)
    • omit compressed kernel modules from find searching exec files (ad36b61e)
  • fips: remove /dev/{random,urandom} pre-creation (5beda2ea)
  • github: add the recently introduced modules to the labeler (5957f5c5)
  • i18n: handle keymap includes with --sysroot (5b714d25)
  • install.d:
    • prevent failure when kernel-install command is not add (6fec7d39)
    • correctly install pre-genned image and die if no args (8388ad14)
    • simplify and use what kernel-install gives us (d4015538)
  • iscsi: do not add host's runtime iscsi configure files in initrd (292e79e8)
  • man: further clarify live-image overlay types & RAM usage (5fa405dd)
  • memstrack: move the console warning to be a comment (ee1c37e3)
  • multipath: explicitly check if hostonly_cmdline is yes (c262ec6d)
  • numlock:
    • use the same shebang as other dracut modules (67987959)
    • use the same shebang as other dracut modules (efa02688)
  • nvmf: move /etc/nvme/host{nqn,id} requirement to hostonly (54cd6479)
  • release: dracut --> dracut-ng for NEWS.md (6fb8fc8b)
  • systemd: explicitly install some libs that will not be statically included (04b362d7, closes #2642)
  • systemd-ask-password:
  • systemd-cryptsetup: add potentially needed modules to generic initrd (9179ade8)
  • systemd-initrd:
    • systemd based initrd needs journald and tmpfiles (860b35c3)
    • only included if another module depends on it (6d3e69ac)
    • add systemd-udevd dependency (8910f8bb)
  • systemd-journald: add systemd dependency (06e4a854)
  • systemd-networkd:
    • drop networkctl as it has a dependency on dbus (7a1519bf)
    • dbus is not a mandatory dependency (6f764a1d)
  • systemd-sysext: handle confexts and correct extensions search path (30da2173)
  • systemd-udevd: add systemd-sysctl dependency (2c866733)
  • test:
    • add support for thin volumes in the Gentoo container (6fc87f5c)
    • fixup Gentoo CI (8bcd077d)
    • remove ib700wdt kernel module from tests (2526a92e)
    • do not omit dracut modules for initramfs.testing (5cb42481)
    • fixup Gentoo CI (3b9054a4)
  • znet: append to udev rules so each rd.znet_ifname is effective (22f51730)

Features

  • 90dm: close crypt devices using cryptsetup (fba8622f, closes #204)
  • 90systemd-cryptsetup: socket key files (80480a73)
  • dasd: minimize dasd handling consolidated in s390-tools (36e1f884)
  • dasd_mod: minimize dasd handling consolidated in s390-tools (2397c479)
  • dasd_rules: remove dasd handling consolidated in s390-tools (72c945ca)
  • dracut.sh: make initramfs-${kernel}.img filename configurable (28820e20)
  • ifcfg: minimize s390-specific network configuration aspects (457e66e6)
  • lsinitrd.sh:
    • print stored dracut cmdline (d10455ad)
    • enable unpacking files from squash-root.img (9b12ef98)
  • numlock: add module to turn Num Lock on (60b44261)
  • pcmcia: factor out pcmcia support into its own module (4b21d5f7)
  • qeth_rules: remove qeth handling consolidated in 95znet (198a86c2)
  • systemd-bsod: dracut module for systemd-bsod (d7ab919e)
  • systemd-cryptsetup: new module for systemd-cryptsetup (649e37bc)
  • systemd-pcrphase: include systemd-pcrphase if dependencies are met (c5cbdaf3)
  • tpm2-tss: add tpm2.target and systemd-tpm2-generator (edd870ed)
  • zfcp: minimize zfcp handling consolidated in s390-tools (7745a81a)
  • zfcp_rules: remove zfcp handling consolidated in s390-tools (b5a35f9d)
  • znet: use zdev for consolidated device configuration (658a21ac)

Contributors

dracut-ng-101

Bug Fixes

Release 101 resolves a regression introduced by release 100 - dracut-ng#130 .

  • dracut.sh: revert: "do not add device if find_block_device returns" (0885d6b2)
  • dmsquash-live: update documentation (d2d41a36)
  • dracut-install: continue parsing if ldd prints "cannot be preloaded" (ace9e1b5)
  • dracut-systemd: replace rd.udev.log-priority with rd.udev.log_level (c1275d87)
  • dracut.sh: omit compressed kernel modules from find searching exec files (ad36b61e)
  • improve Gentoo container (76963537)

Contributors

dracut-ng-100

Release 100 of dracut-ng serves as a drop-in replacement for the original dracut project. This release marks a significant milestone in our commitment to providing an alternative, community-driven solution for creating an initramfs image. The original dracut project is no longer actively maintained (its last tagged release dates back to 2022). Forking allows the community to take ownership of the project and address maintenance issues independently.

This release includes fixes for compatibility with the latest Linux kernel (v6.8), Linux firmware, and systemd (v255).

A new dracut module named net-lib has been added to enhance networking support.

Support for new Linux kernel modules have been added to support new devices, including the Surface Laptop 4 and MacBook Pro.

The project builds test containers daily for the following Linux distributions: Arch Linux, Debian, Fedora, Gentoo, openSUSE, and Ubuntu, in various configurations (systemd, OpenRC, glibc, musl). All enabled integration tests have passed at the time of this release.

Bug Fixes

  • wait 12 hours before halt on media check fail (faa3db78)
  • do not use modprobe --all (5850486f)
  • 45ifcfg: mark as deprecated and strictly opt-in (79e1def5)
  • 90kernel-modules:
    • add surface_aggregator_registry for Surface Laptop 4 (8cc89664)
    • add intel_lpss_pci for MacBook Pro 2017 (f0526fde)
  • 90multipath: drop unneeded dependencies from configure service (9ac195c1)
  • Makefile: release is now just made out of a git sha (71109aed)
  • TEST-62-SKIPCPIO: test always skipped due to buggy test_check (5b5d395a)
  • base: correct handling of quiet in loginit (49b9c219)
  • caps: return 1 if binary requirements are not met (243be951)
  • check_live_ram: increase /run tmpfs size, if needed (e12ad733)
  • configure: misleading error if C compiler is not installed (4980bad3)
  • dmsquash-live:
    • use the overlay size with thin provisioning (2e025eb2)
    • handle relative pathspec (0c6d257f)
  • dracut: correct regression with multiple rd.break= options (3d727a7d)
  • dracut-init.sh: do not print by default if a modules is not installed (d73cc24e)
  • dracut-initramfs-restore.sh: do not set selinux labels if disabled (4d594210)
  • dracut-install: file created without restricting permissions (3439d139)
  • dracut-lib: use poweroff instead of halt (0ca14da6)
  • dracut-systemd: use DRACUT_VERSION instead of VERSION (a2c64222)
  • dracut-util: do not call strcmp if the value argument is NULL (b5fb6e04)
  • dracut.sh:
    • recognize kernel file in /boot named vmlinux too (f2dfc257)
    • do not add device if find_block_device returns an error (18abcc53, closes #2592)
    • skip README for AMD microcode generation (9df35524, closes #2541)
  • github: update format of labeler (de8ac630)
  • i18n:
    • silence spurious setfont stderr warning (27f31c03)
    • handle symlinked keymap (1f73bc8b)
  • install: handle new -Walloc-size for GCC 14 (23b9ec22)
  • livenet:
    • split imgsize calculation to avoid misleading error message (4649b4c6)
    • check also content-length from live image header (6289d5f4)
    • propagate error code (61a00cf8)
  • man: rd.break parameter can be specified multiple times (5a99e671)
  • net-lib: add a new dracut module called net-lib (5e1fec16)
  • overlayfs:
    • to allow overlay on top of network device (nfs) (bedde0f1)
    • allow hostonly (929e3160)
    • split overlayfs mount in two steps (bddffeda)
  • pcsc:
    • add --disable-polkit to pcscd.service (2689123c)
    • add opensc load module file (882e9335)
  • pkcs11: delete trailing dot on libcryptsetup-token-systemd-pkcs11.so (1c762c0d)
  • plymouth: return 1 if binary requirements are not met (edb14009)
  • release:
    • maintain dracut.html in the source tree (7b05aa8b)
    • dracutdevs/dracut --> dracut-ng/dracut-ng (8906474b)
  • resume:
    • include in hostonly mode if resume= on cmdline (d2ff89e2)
    • add new systemd-hibernate-resume.service (b73b5e0f, closes #2513)
  • rootfs-block: remove support for [no]readonlyroot and fastboot (469935fc)
  • systemd-255: handle systemd-pcr{phase -> extend} rename (b63e90ab)
  • systemd-journald: add systemd-sysusers dependency (4971f443)
  • systemd-repart: correct undefined $libdir (1586af09)
  • test: running tests no longer requires to be root (3dad8237)
  • udev-rules: remove legacy persistent network device name rule (898ce135)
  • zfcp_rules: correct shellcheck regression when parsing ccw args (5d2bda46)

Features

  • dracut.sh: protect push_host_devs function (7b54d2fb)
  • kernel-modules:
    • Install SPMI modules on ARM/RISC-V (9491c285)
    • add Qualcomm IPC router to enable USB (dd9a4bc1)
  • network: include 98-default-mac-none.link if it exists (b7f09500)

Contributors

dracut-060

Performance

  • dracut-install:
    • don't strdup() environment block (efd4ca27)
    • don't reallocate {src,dst}path in hmac_install() (77226cb4)
    • don't strdup() excessively for dracut_install() (a20556f0)
    • stat() w/unused buf -> access(F_OK) in dracut-install (e7ed8337)
    • multiple single-character strstr()s -> strpbrk() (751a110f)

Bug Fixes

  • codespell (ddf63231)
  • make iso-scan trigger udev events (7b530f26, closes #2183)
  • shellcheck 0.8.0 (88fe9205)
  • shellcheck 0.8.0 (08b63a25)
  • 99base: adjust to allow mksh as initrd shell (a0d14d3b)
  • Makefile:
    • remove leftover rpm build rules (f5cc202e)
    • no longer upload to kernel.org (ffc766d2)
    • execute command -v instead of which (4235c035)
  • base: do not quote $CLINE in the set command (8b951d20)
  • bluetooth:
    • make bluetooth rules more strict (dfa408c9)
    • add missing files (e84d65c5)
    • include it if Appearance matches the value assigned for keyboard (8079ceaf)
    • warn user instead of including it by default (0ecb0388)
  • btrfs:
    • do not require module via cmdline when --no-kernel (7ed765dd)
    • add missing cmdline function (2b47a2ef)
  • crypt: add missing libraries (c5dca3d6)
  • crypt-gpg: do not use always --card-status (e3e8108e)
  • dmsquash-live:
  • dmsquash-live-autooverlay: specify filesystemtype when it is already known (179e1a99)
  • dracut-functions: avoid calling grep with PCRE (-P) (67591e88)
  • dracut-functions.sh: convert mmcblk to the real kernel module name (a62e895d)
  • dracut-init.sh:
    • module_check method ignores forced option (6c9f403f)
    • use the local _ret variable (1b53bb62)
    • correct check in is_qemu_virtualized function (3e2f685e)
    • correct typo in comment (1aafcab9)
  • dracut-initramfs-restore.sh: handle /etc/machine-id empty or uninitialized (260883d9)
  • dracut-install:
    • protect against broken links pointing to themselves (32f6f364)
    • prevent possible infinite recursion with suppliers (131822e2)
    • continue parsing if ldd prints "cannot execute binary file" (9a531ca0)
  • dracut-lib.sh: remove successful finished initqueue scripts (07af8d58)
  • dracut-systemd:
    • rootfs-generator cannot write outside of generator dir (86c8a5a7)
    • check and create generator dir outside of inner function (acfa793b)
    • do not hardcode the systemd generator directory (a7c04716)
    • remove unused argument (eb75861c)
  • dracut.sh:
    • remove microcode check based on CONFIG_MICROCODE_[AMD|INTEL] (6c80408c)
    • exit if resolving executable dependencies fails (b2c6b584)
    • shellcheck warning SC1004 (dbdab2d8)
    • use gawk for strtonum (33a66ed0)
    • also prevent fsfreeze for tmpfs (09d3ec16)
    • correct path for UEFI stub on split-usr systems (c1588995)
    • silence the output of hardlinking files by default (2a26eec5)
    • handle imagebase for uefi (6178a9d8)
    • handle /etc/machine-id empty or uninitialized (97fe0976)
    • use dynamically uefi's sections offset (f32e95bc)
    • kmoddir does not handle trailing / (1ddcb137)
    • handle sbsign errors for UEFI builds (a6dd5bfb)
    • handle out of space error for UEFI builds (8602df70)
    • --sysroot option broken if global variables not set in conf (6f4a5c90)
    • correct --help and --version exit codes (cda6b00a)
  • fido2: libfido2.so depends on libz.so (15970768)
  • fips:
    • move fips-boot script to pre-pivot (d777dd3d)
    • only unmount /boot if it was mounted by the fips module (ab26ad2c)
    • do not blindly remove /boot (1fabbb64)
  • fs-lib: remove quoting form the first argument of the e2fsck call (9aa332ca)
  • github: exempt issues in a milestone (c8a703aa)
  • install: do not undef _FILE_OFFSET_BITS (70aeb4c1)
  • install.d:
    • do not create initramfs if the supplied image is UKI (b2af8c8b)
    • respect even more kernel-install vars, plus style fixes (17b8649e)
    • respect more kernel-install env variables (a037634a)
  • integrity: do not require ls (a804945f)
  • iscsi:
    • prefix syntax for static iBFT IPv6 addresses (c3b65a49)
    • install 8021q module unconditionally (aa5d9526)
  • kernel-modules:
  • load_fstype: avoid false positive searchs (10cf8e46)
  • lsinitrd.sh:
    • handle /etc/machine-id empty or uninitialized (971b302d)
    • handle filenames with special characters (1f84ff88)
  • lvmthinpool-monitor: activate lvm thin pool before extend its size (e9b47742)
  • man:
    • add missing initrd-root-device.target to flow chart (f11e8fff)
    • remove duplicate entry (6af3fcfd)
  • modsign: load keys to correct keyring (b7ef1302)
  • multipath: remove dependency on multipathd.socket (297525c5)
  • network:
    • IPv6: don't wait for RA for static IPv6 assignments (726d56ca)
    • don't assume prefix length 64 by default (7ff255a4)
  • network,dbus: improve dependency checking (3f8f115a)
  • network-legacy:
  • network-manager: add "After" dependency on dbus.service (d8a9a73d)
  • nvmf:
    • support /etc/nvme/config.json (f07117d6)
    • install 8021q module unconditionally (902f3a8f)
  • plymouth: remove /etc/system-release dependency (d6cef3f2)
  • release: maintain dracut-version.sh in the source tree (b4e23ce4)
  • resolve-deps: check the existing file—not the source (5ac581ef)
  • systemd:
    • add new systemd-tmpfiles-setup-dev-early.service (7528d84d)
    • do not include systemd-random-seed.service (925febf8)
  • systemd-ac-power: correct systemd-ac-power binary path (df2458a6)
  • systemd-journald: do not include systemd-journal-flush.service (eff2a939)
  • systemd-networkd:
    • correct typos in override paths (f0dc7ec9)
    • add missing conf files and services (71e391eb)
  • systemd-pcrphase: only include systemd-pcrphase-initrd.service (cd6f683d)
  • systemd-resolved: correct typo in override path (2d083021)
  • systemd-timedated: correct typo in override path (765e69ce)
  • systemd-tmpfiles: do not include systemd-tmpfiles-clean.timer (1ef00735)
  • systemd-udevd: add missing override paths (570b9d40)
  • test:
    • only use QEMU machine q35 on x86 (f29e428b)
    • use bash for jobs -r parameter (9a18f133)
    • rename test 60 (3d7c0ffb)
    • improve test 60 (5e846cb1)
    • remove leftover link file from server rootfs (8f44740f)
    • assign fixed address to bridge (9fb64d96)
    • bump DHCP timeout to 30 seconds (462d9b92)
    • remove check on dhclient support for --timeout (da959483)
    • adapt multinic test for new NetworkManager versions (d3993c7d)
  • udev-rules:
    • remove firmware.rules (7310a641)
    • remove old eudev specific rule (6d554d9b)
    • remove old redhat specific rule (d648bf80)
    • remove old edd_id extra rules (6a33e677)
    • remove old debian specific rules (1edc41af)
  • url-lib.sh: nfs_already_mounted() with trailing slash in nfs path (966b6cec)
  • virtiofs: add virtio_pci kernel module to virtiofs (07b49a3e)

Features

  • Makefile: allow setting dracut version via environment variables (31c4d284)
  • dracut:
    • add --sbat option to add sbat policy to UKI (fffeaded)
    • use log level indicator in console output (ae88e029)
  • dracut-init.sh:
    • do not print by default if an udev rule is skipped (aa20bbb5)
    • specify if a module cannot be found or cannot be installed (a10078a5)
  • dracut-install: add fw_devlink suppliers as module dependencies (3de4c731)
  • fips: add progress messages (68d0653e)
  • install.d: allow using dracut in combination with ukify (16645633)
  • kernel-modules: driver support for macbook keyboards (df381b7e)
  • livenet: add memory size check depending on live image size (52351cfa)
  • lsinitrd: notify user on missing compressor (1300a930)
  • lvm: always include all drivers that LVM can use (a109c612)
  • network-wicked: remove module (9dbbebb1)
  • nvmf: add code for parsing the NBFT (b490f6f7)
  • resume: also consider resume= in the cmdline as enabling hibernation (e3a7112b, closes #924)
  • systemd: install systemd-executor (bee1c482)
  • systemd-creds: introducing the systemd-creds module (48c2cb45)
  • systemd-rfkill: remove module (c4e6eaf9)
  • test: nfs_fetch_url test into nfs test (8f9ad068)

Contributors

dracut-059

Bug Fixes

  • NEWS.md: add missing entries (794ce5e3)

Contributors

dracut-058

Bug Fixes

  • 90kernel-modules:
    • MMC and NVMe on kernels 6.0+ (e0d57a8f)
    • add (nonstandard) NVMe drivers (415e5519)
  • 90multipath:
    • use RemainAfterExit=yes for multipathd-configure.service (2334031a)
    • create /etc/multipath only (0940be90)
  • Makefile: reduce the number of shell invocations (ad7d5bc8)
  • base:
    • do not require chroot inside initramfs (51813371)
    • remove grep dependency (240a1d34)
  • dbus-broker: add missing sockets.target.wants/dbus.socket (7ed04618)
  • dmsquash-live:
    • add support for NFS (8caaad4f)
    • check kernel for built-in squashfs drivers (922c9e28)
    • run checkisomd5 on correct device (c8f819e6)
  • dmsquash-live-ntfs: remove unnecessary command (e78f71b9)
  • dmsquash-live-root: check kernel for built-in overlay drivers (d0cd7cd3)
  • dracut:
    • allow to set persistent policy based on /dev/mapper device names (9cc7ceec)
    • shellcheck regression in DRACUT_INSTALL calls (097dd367)
    • replace invalid lzo command with lzop for LZO compression (b2d7561b)
    • typo error 'aggresive' -> 'aggressive' (e4f1dbcc)
  • dracut-functions.sh:
    • check_kernel_module should follow dracutsysrootdir (6c42d378)
    • suppress findmnt error msg if /etc/fstab not exist (e9ed44c8)
  • dracut-init: make require_kernel_modules ignore no kernel build (d460941b)
  • dracut-init.sh:
    • instmods: wrong variable name (b12ee558)
    • add missing hostonly code in the inst_multiple function (e2fdb30b)
    • correct dracut-install source path (72b700e3)
    • propagate the result code returned by dracut-install (d2f6f445)
  • dracut-initramfs-restore.sh:
  • dracut-install:
    • use stripped kernel module path as hash key (2f791b40)
    • do not try to copy files from the root directory (ebbcf97d)
    • correctly waitpid() for cp (13736c50)
    • convert_abs_rel: return valid path on error (06d31617)
  • dracut-logger.sh: this fixes the dlog_init check for /dev/log (6b592f58)
  • dracut-systemd: run systemctl daemon-reload after remove_hostonly_files (e1058b07)
  • dracut.sh:
    • split drivers_dir check (d32d221e)
    • use DRACUT_ARCH instead of uname -m (a86aea65)
    • make omit-drivers option do exact match for names (444944ab)
    • correct wrong systemd variable paths (b9dc999f)
    • remove duplicate "dracut:" string in logger functions (8410ee22)
    • do not fail on irregular files (b72d0d7f)
  • dracut.spec: tpm2-tools is required for crypt module to work (8abffe7c)
  • drm: add video drivers needed on hyper-v and similar (85149b85)
  • github: yml syntax and commit message for dependabot (32f6dd1d)
  • i18n:
    • do not fail if FONT in /etc/vconsole.conf has the file extension (e1de5bd2)
    • add required includes for keymaps (fe8fa2b0)
  • install.d: add --verbose if KERNEL_INSTALL_VERBOSE=1 (846a8453)
  • integrity:
    • do not enable EVM if there is no key (90585c62)
    • remove unused variable (9d1004a4)
  • iscsi: don't install the module if kernel doesn't support iscsi (7917d797)
  • kernel-modules:
    • add sysctl to initramfs to handle modprobe files (33679fff)
    • always include nvmem driver on nvmem_on_arm (bc965cd8)
  • load_fstype: use $1 if $2 is missing (401158e5)
  • lsinitrd.sh:
    • add a missing path to image (e877be69)
    • correct skipcpio source path (5eb996a9)
  • lvm: drop dm-eventd binary and libs from initramfs (7d3184e4)
  • man:
    • correct typo (699e3945)
    • dracut.cmdline.7: clarify "rd.nvmf.discover=fc,auto" (a90efdd7)
    • dracut.cmdline(7): correct syntax for rd.nonvmf (4b69e63b)
    • point man pages to github.com instead of kernel.org (d6d55584)
    • correct typo (7fa0094c)
  • multipath: install multipathd.socket (02e646fc)
  • network:
    • check if ip command fails (52d14607)
    • two bugs which cause minutes long boot times (1d6f42c8)
    • avoid double brackets around IPv6 address (2c26b703)
    • don't use same ifname multiple times (f4e9ea87)
  • network-legacy:
    • check if dhclient has --timeout option (23654c50)
    • correct wrong local network configuration path (2eb733cc)
  • network-manager:
    • always install the library plugins directory (429f9de1)
    • correct wrong local network configuration path (744c6de5)
  • nfs,virtiofs: check kernel for builtin fs drivers (78cafe46)
  • nvmf:
    • run cmdline hook before parse-ip-opts.sh (a65fab69)
    • avoid calling "exit" in a cmdline hook (a93968b0)
    • make sure "rd.nvmf.discover=fc,auto" takes precedence (556ef46a)
    • don't use "finished" queue for autoconnect (e93e4652)
    • don't create did-setup file (03921ec0)
    • no need to load the nvme module (a3cf4ec9)
    • don't try to validate network connections in cmdline hook (b3ff3f3f)
    • nvme list-subsys prints the address using commas as separator (9664e98b)
  • shell-completion: add missing -p and --parallel options (b30a00c2)
  • skipcpio: ignore broken pipe (aa0369a4)
  • squash: build ld cache for squash loader (bc1b23c2)
  • systemd:
  • systemd-coredump: correct systemd-coredump binary path (4b931bfb)
  • systemd-hostnamed:
    • add missing dbus-org.freedesktop.hostname1.service (4fca292b)
    • correct sysusers configuration (a540c95b)
  • systemd-networkd: typo in systemd-networkd.socket local conf path (d4732be8)
  • systemd-timedated: add missing dbus-org.freedesktop.timedate1.service (b3d219b4)
  • systemd-timesyncd: typo in systemd-time-wait-sync.service local conf path (e3ec51e1)
  • test: remove unnecessary setup steps (22ab7979)
  • virtiofs:
    • make shebangs work on split-usr systems (27b316df)
    • ismounted has a dependency on the base module (c73e7b99)
  • zipl: remove trailing spaces from zipl boot device name (b4de9ee1)

Features

  • dmsquash-live:
    • add support for dash (862ba526)
    • add new dmsquash-live-autooverlay module (a3c67d27)
  • dracut-init.sh:
    • introduce a new helper require_kernel_modules (d3a5e631)
    • add inst_libdir_dir() helper (cc669250)
  • dracut-install: convert_abs_rel: canonicalise parent of from, too (53dd6a9b, closes #1781)
  • dracut.sh:
    • populate uefi_cmdline if no other cmdline is given (1157143d)
    • pass engine flag to sbsign allowing use with hardware devices (897e5eff)
  • fs-lib: fsck_single can now handle PARTLABEL and PARTUUID (d40617f7)
  • github: automating dependency updates (bdddfd56)
  • kernel-modules: exclude USB drivers in strict hostonly mode (7debf540)
  • multipath: install tmpfiles.d config file (cf31fcf8)
  • nvmf: set rd.neednet=1 if tcp records encountered (cf8986af)
  • overlayfs:
    • add new overlayfs module to dracut.spec (b55563f6)
    • add a new module called overlayfs (40dd5c90)
  • qemu: add efi_secret driver (8194f72a)
  • squash: use require_kernel_modules for better module checking (d4a9d6b4)
  • systemd: install systemd-sysroot-fstab-check (23684e4a)
  • systemd-pcrphase: introducing the systemd-pcrphase module (d345ca2e)
  • systemd-portabled: introducing the systemd-portabled module (03babd95)
  • systemd-pstore: introducing the systemd-pstore module (758f2e69)
  • test: add new module to share code between tests (f5689b42)
  • test-makeroot: add new module to share code between tests (54b963ca)
  • test-root: add new module to share code between tests (b17a3103)

Performance

  • 90kernel-modules: use awk instead of shell monster (77ac95d9)
  • dracut-install:
    • convert_abs_rel: don't allocate target parent realpath (d2648f6d)
    • strdup()+[dirlen]=0 => strndup (e7d6a1e3)
  • dracut.sh: do not mkdir $initdir/lib/dracut within a loop (8d46cc01)

Contributors

dracut-057

Bug Fixes

  • 10i18n:
  • Makefile: use of potentially unset variable (1354d633)
  • bluetooth:
    • accept compressed firmwares in inst_multiple (09a1e5af)
    • nullglob should not be needed (36aaa74f)
    • make $dbussystem/bluetooth.conf optional (a38d9ec0)
  • configure: check for SYS-gettid during configure (0ef40d88)
  • connman: copy netroot.sh from the network module and install it (f6d83f9f)
  • crypt: add missing is_keysource parameter to cryptroot-ask (6c11a8fc)
  • dmsquash-live:
    • mount live device with the correct type (08ed7b2d)
    • permanent overlay on the same drive as LiveCD .iso (9a884b3a)
  • dracut: default to correct firmware search paths (95aeed89)
  • dracut-functions.sh: correct wrong comment (0afa840e)
  • dracut-initramfs-restore.sh:
    • unpack uncompressed initrd as last option (46886956)
    • check if SELINUXTYPE is set (24d8f35b)
  • dracut-install:
    • copy files preserving ownership attributes (9ef73b6a)
    • do not fail when SOURCE is optional and missing (bd1a5ca9)
  • dracut-systemd:
    • drop misleading man page reference (77c28b30)
    • correct service dependencies (85fdff12)
  • dracut.cmdline.7: {=> must} also be specified (27071e9a)
  • dracut.sh:
    • format usage and add missing options (9bef7109)
    • always check that MACHINE_ID is not empty (527fdfa1)
    • avoid calling dfatal before dracut-logger is sourced (012d7db2)
    • add missing default output file paths (28ef3bc6)
    • add missing --libdirs usage (352e5917)
    • drop restorecon call (33859892)
    • error exporting sysctl variables (4c355d05)
  • dracut.spec: add connman module (d0c6ab21)
  • fedora.conf: vi binary is missing (48541362)
  • github: remove packit (8fd37d20)
  • ifcfg: avoid calling unavailable dracut-logger functions (7103c4bc)
  • install: restore musl support (ce55a85e)
  • integrity: do not display any error if there is no IMA certificate (f63f411d)
  • iscsi:
    • do not exit in handle_netroot() if discovery failed (319dc7fe)
    • remove unneeded iscsi NOP-disable code (a33a8df4)
  • kernel-network-modules: allow specifying empty --hostonly-nics (ab6f5733)
  • lsinitrd.sh:
    • always check that MACHINE_ID is not empty (d6343146)
    • add missing default paths (49ea6c42)
  • lvm:
    • add missing grep requirement (79f9d9e1)
    • ignore expected error message from lvm config (7e03d81f)
  • man:
  • network-manager: avoid calling unavailable dracut-logger functions (b7059aef)
  • nfs:
    • give /run/rpcbind ownership to rpc user (d6159343)
    • require and install needed binaries (0e4df7a3)
  • nvmf:
    • deprecate old nvmf cmdline options (e405501e)
    • set executable bit on nvmf-autoconnect.sh (25a92885)
  • plymouth: hide dpkg-architecture stderr messages (42e9d188)
  • resume: correct call to block_is_netdevice function (a7a4b76c)
  • shell-completion: add missing options (1199f990)
  • systemd-coredump: add systemd-sysusers dependency (ce82e969)
  • systemd-journald: remove duplicate entry in inst_multiple (d3ab2061)
  • systemd-timesyncd: add systemd-sysusers dependency (28b6adcb)
  • test:
    • dmsquash-live test without an iso (6ee2baf3)
    • remove stale comments (b3ab3037)
    • add support for dpkg to pass the test on debian (a7dfdf6a)
    • nullglob should not be needed (c7b3ac2b)
  • udev-rules: add cdrom udev rules by default (aebeb2ec)

Features

Contributors

dracut-056

Bug Fixes

  • base:
    • do not change the provided UUID (4e858741)
    • add default device choice (e8c18c9f)
    • tr needs to be installed (dfbfd33b)
    • do not quote $initargs for switch_root (f649cd10)
    • repair installing dracut-util (d7acf107)
  • bluetooth:
    • make hostonly configuration files optional (d03fb675)
    • dbus configuration path fixes (34b1dd2e)
  • cms: reload NetworkManager connections (07977ee5)
  • cpio:
    • correct dev_t -> rmajor/rminor mapping (acc629ab)
    • write zeros instead of seek for padding and alignment (0af11c5e)
  • crypt: remove quotes from cryptsetupopts (e0abf88a, closes #1528)
  • crypt-gpg:
    • tr needs to be installed (a93fbc4a)
    • execute --card-status on each try (66100936)
  • dasd_rules:
    • correct udev dasd rules parsing (5de6e4d5)
    • remove collect based udev rule creators (ebafbd82)
  • dmsquash-live:
    • option to use overlayfs on a block device root (813577e2)
    • do not install systemd files when systemd is not enabled (bf8738d3)
    • iso-scan requires rmdir (e19e3890)
    • correct regression introduced with shellcheck changes (0c631efb)
  • dmsquash-live-ntfs: fuse3 no longer requires ulockmgr_server (75ad2699)
  • dracut: be more robust when using 'set -u' (22a80629)
  • dracut-functions.sh:
    • ip route parsing (d754e1c6)
    • get block device driver if in a virtual subsystem (dc3b976f)
  • dracut-init: unbreak a comment (bc4f196f)
  • dracut-initramfs-restore.sh:
  • dracut-install: tweaks to get_real_file() (1beeaf3b)
  • dracut-shutdown: add cleanup handler on failure (7ab1d002)
  • dracut-systemd: do not use Requires for vconsole-setup.service (a7f5429c)
  • dracut.sh:
    • do not ignore invalid config file or dir path (7de9ffc0)
    • check kernel zstd support early (475497b1)
    • check availability of configured compression (bdac657b)
    • inform user about auto-selected compression method (06d47ded)
    • drop pointless check for module compression method (586d3e76)
    • change misspelled variable name (acfd97a9)
    • remove wrong $ in loop sequence (f1245b5b)
    • handle symlinks appropriately while using '-i' option (c7fbc0c8)
    • handle '-i' option to include files beginning with '.' (f1138012)
  • drm: add privacy screen modules to the initrd (14d97a6a)
  • fedora.conf.example: rename misspelled variable (9371dcab)
  • fido2: add a missing library (4753738b)
  • fips:
  • fips.sh: repsect rd.fips.skipkernel (5789abcb)
  • img-lib: install rmdir (51ce8893)
  • install:
    • segfault on popen error (5c2f72f1)
    • extend hwcaps library handling to libraries under glibc-hwcaps/ (10ed204f)
    • use size_t to avoid -Wsign-compare warning (55468a2d)
    • improve gettid definition (ef0f848a)
    • validate return values log.c (19537f89)
    • rectify unused function args in log.c (b5cf7ec7)
    • use wrapper for asprintf (e2a61595)
    • use unsigned int instead of unsigned (74a41799)
    • reduce cppcheck warnings (b0bf8187)
    • add a missing ret value assignment (6a444261)
  • integrity: add support for loading multiple EVM x509 certs (9da76af8)
  • iscsi: add support for the new iscsiadm "no-wait" (-W) command (7374943a)
  • kernel-modules:
    • add mailbox drivers for arm (0e80ff72)
    • detect block device's hardware driver (c86f4d28)
    • add blk_mq_alloc_disk and blk_cleanup_disk to blockfuncs (b292ce72)
    • add more modules on RISC-V (3cc9f1c1)
    • add isp1760 USB controller (15398458)
    • add Type-C USB drivers for generic initrd (a1287c62)
  • kernel-modules-extra: handle zstd module extension (b3d2dcb7)
  • lvm:
    • restore setting LVM_MD_PV_ACTIVATED (164e5ebb)
    • replace --partial option (97543cca)
  • man: default value of rd.retry was increased to 180 seconds (4855242c)
  • mdraid: allow UUID comparison for more than one UUID (d364ce83)
  • memstrack: drop bash runtime requirement (35822f39)
  • mksh: requires printf (f806a628)
  • multipath:
    • check if mpathconf is available (4318533e)
    • drop ExecStop= setting from service unit (9491e599)
    • get config. dir from configuration (2e3c5444)
  • multipathd.service:
    • drop dependencies on iscsi and iscsid (6246da40)
    • adapt to upstream multipath-tools unit file (a247d2bc)
    • remove dependency on systemd-udev-settle (371b338a)
  • network:
    • consistent use of "$gw" for gateway (3f2c76bb)
    • wrong test of wicked unit (22e68307)
    • add errors and warnings when network interface does not exist (79389352)
  • network-manager:
    • skip non-directories in /sys/class/net (d9c3c774)
    • disable tty output if the console is not usable (f6e6be24)
    • show output on console only with rd.debug enabled (e07b7ad0)
    • write DHCP filename option to dhcpopts file (38320fce)
    • check for nm-initrd-generator in both /usr/{libexec,lib} (5ee7e249)
    • ensure safe content of /tmp/dhclient."$ifname".dhcpopts (e509c638)
    • include nm-daemon-helper binary (0e590531)
    • don't pull in systemd-udev-settle (a0f12fb6)
    • support teaming under NM+systemd (a97d2ced)
    • pull in network.target in nm-initrd.service (a97d6e2b)
  • network-wicked: multiple path corrections (d3b5bc17)
  • nvmf: validate_ip_conn (655c65e6)
  • qeth_rules: check the existence of /sys/devices/qeth/*/online beforehand (6c71ba41)
  • resume:
    • resume using /usr/lib64/suspend (c4593734)
    • check for presence of /sys/power/resume (0b977906)
  • rootfs-block: make the base module dependency explicit (3326e4c9)
  • s390_rules: drop collect installation (f905c3a7)
  • shutdown: be robust against forced shutdown (b9ba3c8b)
  • skipcpio:
  • squash:
    • apply FIPS and libpthread workaround (5ab18dee)
    • remove tailing '/' when installing ld.so.conf.d (cbd85597)
    • keep ld cache under initdir (dc21638c)
    • create relative symlinks (a2b6be44)
  • systemd-sysusers:
    • use split systemd sysuser configs (fec93bb2)
    • override systemd-sysusers.service (dcbe23c1)
  • tpm2-tss:
  • url-lib:
    • SC2086: Double quote to prevent globbing and word splitting (acb18869)
    • SC2046: Quote this to prevent word splitting (ec50cec3)
    • improve ca-bundle detection (e3bb1815)
    • make pre-pivot hook separetely per nfs mount (2f091b17)
  • usrmount: do not empty _dev variable (4afdcba2)
  • zfcp_rules:
    • correct udev zfcp rules parsing (59252668)
    • remove collect based udev rule creators (d40c49a8)

Features

  • Makefile: cargo wrapper for dracut-cpio build (51d21c6b)
  • cpio:
    • add newc archive creation utility (a9c67046)
    • add rust argument parsing library from crosvm (94fc5026)
  • crypt:
    • check if pkcs11 module is needed in hostonly mode (56f4fb6c)
    • check if fido2 module is needed in hostonly mode (d5fd030c)
    • check if tpm2-tss module is needed in hostonly mode (5d990a00)
  • dracut.sh:
    • add --aggresive-strip option (67fc670a)
    • add "--enhanced-cpio" option for calling dracut-cpio (afe4a6db)
    • check if target kernel has zstd support compiled in (591118c5)
  • fido2: introducing the fido2 module (049973b7)
  • lvm:
    • only run lvchange for LV that is seen on devices (1af46743)
    • use generated filter when none is set (7ffc5e38)
    • update lvm command options (c0a54f29)
  • pcsc: introducing the pcsc module (dcaff88a)
  • pkcs11:
    • include the module in the spec file (c5907f82)
    • introducing the pkcs11 module (83ea8cf0)
  • spec: add systemd-integritysetup module (fe8df024)
  • squash: install umount util (563f5434)
  • systemd: enable support for systemd compiled with ASAN (d502d2a8)
  • systemd-integritysetup: introducing the systemd-integritysetup module (33cf47a6)

Contributors

dracut-055

Bug Fixes

  • base:
    • add missing str_replace to dracut-dev-lib.sh (148e420b)
    • split out dracut-dev-lib.sh (c08bc810)
  • bash: minor cleanups (9355cb8e)
  • dash: minor cleanups (f4ea5f87)
  • dracut: pipe hardlink output to dinfo (0a6007bf)
  • dracut-functions: get_maj_min without get_maj_min_cache_file set (a277a5fc)
  • dracut-util: print error message with trailing newline (b9b6f0ee)
  • fs-lib: install fsck utilities (12beeac7)
  • install:
  • integrity: require ALLOW_METADATA_WRITES to come from EVM config file (b12d91c4)
  • mksh: minor cleanups (6c673298)
  • squash: don't mount the mount points if already mounted (636d6df3)
  • warpclock: minor cleanups (7d205598)

Features

  • dracut.sh: detect running in a container (7275c6f6)
  • install: add default value for --firmwaredirs (4cb086fa)

Contributors

dracut-054

With this release dracut has undergone a major overhaul.

A lot of systemd related modules have been added.

The integration test suite has finally ironed out the flaky behaviour due to the parallel device probing of the kernel, which bit sometimes in the non-kvm github CI. So, if you see any /dev/sda in a setup script with more than two hard drives, chances are, that the script works on the wrong disk. Same goes for network interfaces.

This release is also fully shellcheck'ed with ShellCheck-0.7.2 and indented with shfmt and astyle.

The dracut project builds test containers every day for:

  • opensuse/tumbleweed-dnf:latest
  • archlinux:latest
  • fedora:rawhide
  • fedora:latest
  • fedora:33

These containers can easily be used to run the integration tests locally without root permissions via podman. We hope this serves as a blueprint for your distribution's CI process.

More information can be found in docs/HACKING.md.

Bug Fixes

  • make testsuite pass on OpenSuse and Arch (8b2afb08)
  • cope with distributions with /usr/etc files (3ad3b3a4)
  • deprecate gummiboot (5c94cf41)
  • set vimrc and emacs indention according to .editorconfig (9012f399)
  • correctly handle kernel parameters (501d82f7)
  • remove dracut.pc on make clean (d643156d)
  • honor KVERSION environment in the Makefile (d8a454a5)
  • always use mkdir -p (9cf7b1c5)
  • dracut.sh:
    • prevent symbolic links containing // (de0c0872)
    • adding missing globalvars for udev (f35d479d)
    • sysctl global variables (3ca9aa1d)
    • add global vars for modules-load (ec4539c6)
    • omission is an addition to other omissions in conf files (96c31333)
    • harden dracut against GZIP environment variable (d8e47e20)
    • add a missing tmpfilesconfdir global variable (8849dd8d)
    • include modules.builtin.alias in the initramfs (7f633747)
    • install all depmod relevant configuration files (50a01dd4)
    • add modules.builtin.modinfo to the initramfs (87c4c178)
    • search for btrfs devices from actual mount poiont (3fdc734a)
  • dracut-functions.sh:
    • implement a cache for get_maj_min (c3bb9d18)
    • word splitting issue for sed in get_ucode_file (122657b2)
  • dracut-logger.sh: double dash trigger unknown logger warnings during run (4fbccde5)
  • dracut-install:
    • handle $LIB in ldd output parsing (d1a36d3d)
    • handle builtin modules (2536a9ea)
  • base:
    • suppress calls to getarg in build phase (6feaaabc)
    • source hooks without exec (8059bcb2)
    • wait_for_dev quote shell variables (b800edd6)
    • adding crc32c for ext3 (61f45643)
  • crypt:
    • install all crypto modules in the generic initrd (10f9e569)
    • include cryptsetups tmpfile (a4cc1964)
  • crypt-gpg:
    • cope with different scdaemon location (44fd1c13)
  • dbus-broker:
  • dbus-daemon:
    • only error out in install() (ae4fbb3d)
  • dracut-systemd:
    • don't refuse root=tmpfs when systemd is used (a96900a8)
  • examples: remove the examples directory and reference to it (b37c90c8)
  • fips:
    • add dh and ecdh ciphers (543b8014)
    • remove old udev version requirements (be30d987)
  • i18n:
  • img-lib:
  • integrity:
    • properly set up EVM when using an x509 cert (4bdd7eb2)
  • iscsi:
    • replace sed call with bash internals (66b920c6)
    • add iscsid.service requirements (bb6770f1)
    • only rely on socket activiation (0eb87d78)
  • kernel-modules:
    • optionally add /usr/lib/modules.d to initramfs (92e6a8f8)
    • add watchdog drivers for generic initrd (3a60c036)
  • mdraid:
    • remove dependency statements (86b75634)
  • memstrack:
  • multipath:
    • stop multipath before udev db cleanup (3c244c7c)
    • revise multipathd-stop (7b8c78ff)
  • nbd:
    • assume nbd version >= 3.8 (6209edeb)
    • remove old udev version requirements (fd15dbad)
    • make nbd work again with systemd (77906443)
  • network:
    • use wicked unit instead of find_binary (57eefcf7)
    • user variable for sdnetworkd instead of path (4982e16d)
    • correct regression in iface_has_carrier (36af0518)
  • network-legacy:
  • network-manager:
    • cope with distributions not using libexec (22d6863e)
    • set timeout via command line option (8a51ee1f)
    • run after dracut-cmdline (4d03404f)
    • create /run directories (49b61496)
    • use /run/NetworkManager/initrd/neednet in initqueue (6a37c6f6)
    • only run NetworkManager if rd.neednet=1 (ac0e8f7d)
    • nm-run.service: don't kill forked processes (1f21fac6)
    • no default deps for nm-run.service (ba4bcf5f)
    • nm-lib.sh does not require bash (3402142e)
  • squash:
    • post install should be the last step before stripping (8c8aecdc)
  • systemd:
    • include all nss libraries (b3bbf5fb)
    • include hosts and nsswitch.conf in hostonly mode (5912f4fb)
    • remove old systemd version requirements (fc53987b)
  • systemd-hostnamed: extra quote (2aa65234)
  • systemd-modules: remove dependency on systemd meta module (afef4557)
  • systemd-modules-load:
  • systemd-networkd:
    • make systemd-networkd a proper network provider (ea779750, closes #737)
  • systemd-resolved: remove nss libraries (12bef83c)
  • systemd-sysctl:
  • systemd-sysusers:
  • systemd-udev: use global vars instead of fixed path (fd883a58)
  • systemd-udevd: add udev id program files (562cb77b)
  • systemd-verity:
    • incorrect reference to cryptsetup target (ba92d1fc)
    • re-naming module to veritysetup (0267f3c3)
  • tpm2-tss: add tpm2 requirement (8f99fada)
  • udev-rules:
    • remove sourcing of network link files (69f4e7cd)
    • add btrfs udev rules by default (567c4557)
  • url-lib:
  • zipl:

Performance

  • disable initrd compression when squash module is enabled (7c0bc0b2)

Features

  • support ZSTD-compressed kernel modules (ce9af251)
  • also restore the initramfs from /lib/modules (33e27fab)
  • extend Makefile indent target (e0a0fa61)
  • customize .editorconfig according to shfmt (1f621aba)
  • squash module follow --compress option (5d05ffbd)
  • bluetooth: implement bluetooth support in initrd (64ee2a53)
  • btrfs: add 64-btrfs-dm.rules rules (d4caa86a)
  • mkinitrd: remove mkinitrd (43df4ee2)
  • nbd: support ipv6 link local nbds (b12f8188)
  • network-manager: run as daemon with D-Bus (112f03f9)
  • qemu: include the virtio_mem kernel module (f3dcb606)
  • skipcpio: speed up and harden skipcpio (63033495)
  • squash:
    • use busybox for early setup if available (90f269f6)
    • install and depmod modules seperately (5a18b24a)
  • systemd-ac-power: introducing the systemd-ac-power module (e7407230)
  • systemd-hostnamed: introducing the systemd-hostnamed module (bf273e3e)
  • systemd-initrd: add initrd-usr-fs.target (5eb73610)
  • systemd-journald: introducing the systemd-journald module (3697891b)
  • systemd-ldconfig: introducing the systemd-ldconfig module (563c434e)
  • systemd-network-management: introducing systemd-network-management module (e942d86c)
  • systemd-resolved: introducing the systemd-resolved module (b7d3caef)
  • systemd-rfkill: introducing the systemd-rfkill module (21536544)
  • systemd-sysext: introducing the systemd-sysext module (fc88af54)
  • systemd-timedated: introducing the systemd-timedated module (1c41cc90)
  • systemd-timesyncd: introducing the systemd-timesyncd module (2257d545)
  • systemd-tmpfiles: introducing the systemd-tmpfiles module (2b61be32)
  • systemd-udevd: introducing the systemd-udevd module (3534789c)
  • systemd-verity: introducing the systemd-verity module (3d4dea58)
  • tpm2-tss: introducing the tpm2-tss module (8743b073)

Contributors

dracut-053

Bug Fixes

  • dracut.sh:
    • unfreeze /boot on exit (d87ae137)
    • proper return code for inst_multiple in dracut-init.sh (d437970c)
  • fcoe:
    • rename rd.nofcoe to rd.fcoe (6f7823bc)
    • rd.nofcoe=0 should disable fcoe (805b46c2)
  • i18n:
    • get rid of eval calls (5387ed24)
    • create the keyboard symlinks again (9e1c7f3d)
  • network-manager:
    • run as a service if systemd module is present (c17c5b76)
    • rework how NM is started in debug mode (34c73b33)
  • drm: skip empty modalias files in drm module setup (c3f24184)

dracut-052

Features

  • dracut:

    • allow overriding the systemctl command for sysroot with $SYSTEMCTL for cross compilation

    • add additional global variables

      Variables like dbusconfdir or systemdnetwork are now exported to the individual modules as global variables. If they are not set in the distribution dracut config files, they are set via pkg-config

    • A --no-uefi option as been added to the CLI options to disable a default uefi=yes set by a configuration file.

  • kernel-modules: add modules from drivers/memory for arm

  • network-legacy: send dhcp in parallel on all devices via the single-dhcp option

  • dbus: introduce a meta module for dbus

  • dbus-broker: introduce the dbus-broker module

  • dbus-daemon: introduce the dbus-daemon module

  • systemd-ask-password: introduce the systemd-ask-password module

  • systemd-coredump: introduce the systemd-coredump module

  • systemd-modules-load: introduce the systemd-modules-load module

  • systemd-repart: introduce the systemd-repart module

  • systemd-sysctl: introduce the systemd-sysctl module

  • systemd-sysusers: introduce the systemd-sysuser module

Bug Fixes

  • first round of shellcheck for all shell scripts
  • revise all module checks to not error out about missing dependencies
  • use the top-level /efi path to address the EFI partition
  • correct the squash quirk
  • use find_binary instead of other methods, because find_binary honors dracutsysrootdir
  • quote globbing in module-setup.sh for inst_multiple
  • move ldconfig after library workaround
  • do not set cmdline for uefi images unless asked
  • dracut: don't override PATH, if dracutsysrootdir is set
  • dracut-functions.sh: check kernel config from dracutsysrootdir
  • dracut-init.sh: make inst_libdir_file work with dracutsysrootdir set
  • dracut-install: allow globbing for multiple sources
  • 06dbus:
    • do not hardcode path to dbus utils
    • do not hardcode path to systemd unit
  • uefi use efivars fs over the deprecated sysfs entries
  • keyring adding shared keyring mode to systemd unit dracut-pre-pivot.service
  • 35network-manager: avoid restarting NetworkManager
  • 90kernel-modules: install generic crypto modules with hostonly unset
  • 99squash: use kernel config instead of modprobe to check modules
  • dbus-daemon: use uid/gid from sysroot if dracutsysrootdir is set
  • kernel-modules: add reset controllers for arm
  • kernel-network-modules: also install modules from mdio subdirectory
  • mdraid:
    • remove the offroot option (long deprecated)
    • add the grow continue service mdadm-grow-continue
  • network-legacy: silent the check for dhcp leaseinfo
  • network-manager: allow override network manager version
  • plymouth: install binaries with dependencies
  • shutdown: add timeout to umount calls
  • watchdog: fix dependencies in module-setup.sh

Contributors

dracut-051

dracut:

  • allow running on a cross-compiled rootfs

    dracutsysrootdir is the root directory, file existence checks use it.

    DRACUT_LDCONFIG can override ldconfig with a different one that works on the sysroot with foreign binaries.

    DRACUT_LDD can override ldd with a different one that works with foreign binaries.

    DRACUT_TESTBIN can override /bin/sh. A cross-compiled sysroot may use symlinks that are valid only when running on the target so a real file must be provided that exist in the sysroot.

    DRACUT_INSTALL now supports debugging dracut-install in itself when run by dracut but without debugging the dracut scripts. E.g. DRACUT_INSTALL="valgrind dracut-install or DRACUT_INSTALL="dracut-install --debug".

    DRACUT_COMPRESS_BZIP2, DRACUT_COMPRESS_LBZIP2, DRACUT_COMPRESS_LZMA, DRACUT_COMPRESS_XZ, DRACUT_COMPRESS_GZIP, DRACUT_COMPRESS_PIGZ, DRACUT_COMPRESS_LZOP, DRACUT_COMPRESS_ZSTD, DRACUT_COMPRESS_LZ4, DRACUT_COMPRESS_CAT: All of the compression utilities may be overridden, to support the native binaries in non-standard places.

    DRACUT_ARCH overrides "uname -m".

    SYSTEMD_VERSION overrides "systemd --version".

    The dracut-install utility was overhauled to support sysroot via a new option -r and fixes for clang-analyze. It supports cross-compiler-ldd from https://gist.github.com/jerome-pouiller/c403786c1394f53f44a3b61214489e6f

    DRACUT_INSTALL_PATH was introduced so dracut-install can work with a different PATH. In a cross-compiled environment (e.g. Yocto), PATH points to natively built binaries that are not in the host's /bin, /usr/bin, etc. dracut-install still needs plain /bin and /usr/bin that are relative to the cross-compiled sysroot.

    DRACUT_INSTALL_LOG_TARGET and DRACUT_INSTALL_LOG_LEVEL were introduced so dracut-install can use different settings from DRACUT_LOG_TARGET and DRACUT_LOG_LEVEL.

  • don't call fsfreeze on subvol of root file system

  • Use TMPDIR (typically /run/user/$UID) if available

  • dracut.sh: add check for invalid configuration files Emit a warning about possible misconfigured configuration files, where the spaces around values are missing for +=""

  • dracut-functions: fix find_binary() to return full path

  • dracut.sh: FIPS workaround for openssl-libs on Fedora/RHEL

  • dracut.sh: fix early microcode detection logic

  • dracut.sh: fix ia32 detection for uefi executables

  • dracut.sh: Add --version

  • dracut.sh: Add --hostonly-nics option

  • EFI Mode: only write kernel cmdline to UEFI binary

  • Allow $DRACUT_INSTALL to be not an absolute path

  • Don't print when a module is explicitly omitted (by default)

  • Remove uses of bash (and bash specific syntax) in runtime scripts

  • dracut-init.sh: Add a helper for detect device kernel modules

  • dracut-functions.sh: Fix check_block_and_slaves_all

  • dracut-functions.sh: add a helper to check if kernel module is available

Documentation

  • dracut.cmdline.7.asc: clarify usage of rd.lvm.vg and rd.lvm.lv
  • dracut.conf.5.asc: document how to config --no-compress in the config
  • fix CI badges in README.md and fix dracut description
  • dracut.modules.7.asc: fix typos
  • dracut.modules.7.asc: fix reference to insmodpost module
  • Add --version to man page
  • Adding code of conduct
  • Document initqueue/online hook

dracut-install:

  • install: also install post weak dependencies of kernel modules
  • install: Globbing support for resolving "firmware:"

mkinitrd:

  • use vmlinux regex for ppc*, vmlinuz for i686

mkinitrd-suse:

  • fix i586 platform detection

modules:

00systemd:

  • skip dependency add for non-existent units
  • add missing cryptsetup-related targets

05busybox:

  • simplify listing of supported utilities

06rngd:

  • install dependant libs too
  • Do not start inside container

10i18n:

  • i18n: Always install /etc/vconsole.conf

35network-legacy:

  • dhclient-script: Fix typo in output of BOUND & BOUND6 cases
  • simplify fallback dhcp setup

35network-manager:

  • ensure that nm-run.sh is executed when needed
  • install libnss DNS and mDNS plugins
  • always pull in machinery to read ifcfg files
  • set kernel hostname from the command line
  • move connection generation to a lib file

40network:

  • fix glob matching ipv6 addresses
  • net-lib.sh: support infiniband network mac addresses

45url-lib:

  • drop NSS if it's not in curl --version

80cms:

  • regenerate NetworkManager connections

90btrfs:

  • force preload btrfs module
  • Install crypto modules in 90kernel-modules

90crypt:

  • cryptroot-ask: no warn if /run/cryptsetup exist
  • install crypto modules in 90kernel-modules
  • try to catch kernel config changes
  • fix force on multiple lines
  • pull in remote-cryptsetup.target enablement
  • cryptroot-ask: unify /etc/crypttab and rd.luks.key

90dmsquash-live:

  • iso-scan.sh: Provide an easy reference to iso-scan device

90kernel-modules:

  • remove nfit from static module list (see nvdimm module)
  • install crypto modules in 90kernel-modules
  • add sg kernel module
  • add pci_hyperv
  • install block drivers more strictly
  • install less modules for hostonly mode
  • arm: add drivers/hwmon for arm/arm64

90kernel-network-modules

  • on't install iscsi related module (use 95iscsi)

90lvm:

  • remove unnecessary ${initdir} from lvm_scan.sh
  • fix removal of pvscan from udev rules
  • do not add newline to cmdline

90multipath:

  • add automatic configuration for multipath (adds 'rd.multipath=default' to use the default config)
  • install kpartx's 11-dm-parts.rules

90nvdimm:

  • new module for NVDIMM support

90ppcmac:

  • respect DRACUT_ARCH, don't exclude ppcle

90qemu-net:

  • in hostonly mode, only install if network is needed
  • install less module for strict hostonly mode

91zipl:

  • parse-zipl.sh: honor SYSTEMD_READY

95cifs:

  • pass rootflags to mount
  • install new softdeps (sha512, gcm, ccm, aead2)

95dasd:

  • only install /etc/dasd.conf if present

95dcssblk:

  • fix script permissions

95fcoe:

  • fix pre-trigger stage by replacing exit with return in lldpad.sh
  • default rd.nofcoe to false
  • don't install if there is no FCoE hostonly devices

95iscsi:

  • fix missing space when compiling cmdline args
  • fix ipv6 target discovery

95nfs:

  • only install rpc services for NFS < 4 when hostonly is strict
  • Change the order of NFS servers during the boot (next-server option has higher priority than DHCP-server itself)
  • install less module if hostonly mode is strict

95nvmf:

  • add module for NVMe-oF
  • add NVMe over TCP support

95resume:

  • do not resume on iSCSI, FCoE or NBD

95rootfs-block:

  • mount-root.sh: fix writing fstab file with missing fsck flag
  • only write root argument for block device

95zfcp:

  • match simplified rd.zfcp format too

95zfcp_rules:

  • parse-zfcp.sh: remove rule existence check

95znet:

  • add a rd.znet_ifname= option

98dracut-systemd:

  • remove memtrace-ko and rd.memdebug=4 support in dracut
  • remove cleanup_trace_mem calls
  • dracut-initqueue: Print more useful info in case of timeout
  • as of v246 of systemd "syslog" and "syslog-console" switches have been deprecated
  • don't wait for root device if remote cryptsetup active

99base:

  • dracut-lib.sh: quote variables in parameter expansion patterns
  • remove memtrace-ko and rd.memdebug=4 support in dracut
  • remove cleanup_trace_mem calls
  • see new module 99memstrack
  • prevent creating unexpected files on the host when running dracut

99memstrack:

  • memstrack is a new tool to track the overall memory usage and allocation, which can help off load the improve the builtin module memory tracing function in dracut.

99squash:

  • don't hardcode the squash sub directories
  • improve pre-requirements check
  • check require module earlier, and properly

new modules:

  • nvmf
  • watchdog-modules
  • dbus
  • network-wicked

removed modules:

  • stratis

test suite:

  • use dd from /dev/zero, instead of creating files with a hole
  • TEST-03-USR-MOUNT/test.sh: increase loglevel
  • TEST-12-RAID-DEG/create-root.sh: more udevadm settle
  • TEST-35-ISCSI-MULTI: bump disk space
  • TEST-41-NBD-NM/Makefile: should be based on TEST-40-NBD not TEST-20-NFS
  • TEST-99: exclude /etc/dnf/* from check

dracut-050

dracut:

  • support for running on a cross-compiled rootfs, see README.cross
  • add support for creating secureboot signed UEFI images
  • use microcode found in packed cpio images
  • -k/--kmodir must now contain "lib/modules/$KERNEL_VERSION" use DRACUT_KMODDIR_OVERRIDE=1 to ignore this check
  • support the EFI Stub loader's splash image feature. --uefi-splash-image <FILE>

dracut modules:

  • remove bashism in various boot scripts
  • emergency mode: use sulogin

fcoe:

  • add rd.nofcoe option to disable the FCoE module from the command line

10i18n:

  • fix keymaps not getting included sometimes
  • use eurlatgr as default console font

iscsi:

  • add option rd.iscsi.testroute

multipath:

  • fix udev rules detection of multipath devices

network:

  • support NetworkManager

network-legacy:

  • fix classless static route parsing
  • ifup: fix typo when calling dhclient --timeout
  • ifup: nuke pid and lease files if dhclient failed
  • fix ip=dhcp,dhcp6
  • use $name instead of $env{INTERFACE} (systemd-udevd regression)

shutdown:

  • fix for non-systemd reboot/halt/shutdown commands
  • set selinux labels
  • fix shutdown with console=null

lsinitrd:

  • list squash content as well
  • handle UEFI created with dracut --uefi
  • make lsinitrd usable for images made with Debian mkinitramfs

dracut-install:

  • fixed ldd parsing
  • install kernel module dependencies of dependencies
  • fixed segfault for hashing NULL pointers
  • add support for compressed firmware files
  • dracut_mkdir(): create parent directories as needed.

configure:

  • Find FTS library with --as-needed

test suite:

  • lots of cleanups
  • add github actions

new modules:

  • rngd
  • network-manager
  • ppcmac - thermal/fan control modules on PowerPC based Macs

dracut-049

lsinitrd:

  • record loaded kernel modules when hostonly mode is enabled lsinitrd $image -f */lib/dracut/loaded-kernel-modules.txt
  • allow to only unpack certain files

kernel-modules:

  • add gpio and pinctrl drivers for arm*/aarch64
  • add nfit

kernel-network-modules:

  • add vlan kernel modules

ifcfg/write-ifcfg.sh:

  • aggregate resolv.conf

livenet:

  • Enable OverlayFS overlay in sysroot.mount generator.

dmsquash-live:

  • Support a flattened squashfs.img
  • Remove obsolete osmin.img processing

dracut-systemd:

  • Start systemd-vconsole-setup before dracut-cmdline-ask

iscsi:

  • do not install all of /etc/iscsi unless hostonly
  • start iscsid even w/o systemd

multipath:

  • fixed shutdown

network:

  • configure NetworkManager to use dhclient

mdraid:

  • fixed uuid handling ":" versus "-"

stratis:

  • Add additional binaries

new modules:

  • 00warpclock
  • 99squash Adds support for building a squashed initramfs
  • 35network-legacy the old 40network
  • 35network-manager alternative to 35network-legacy
  • 90kernel-modules-extra adds out-of-tree kernel modules

testsuite:

  • now runs on travis
  • support new qemu device options
  • even runs without kvm now

dracut-048

dracut.sh:

  • fixed finding of btrfs devices

  • harden dracut against BASH_ENV environment variable

  • no more prelinking

  • scan and install "external" kernel modules

  • fixed instmods with zero input

  • rdsosreport: best effort to strip out passwords

  • introduce tri-state hostonly mode

    Add a new option --hostonly-mode which accept an parameter, so we have a tri-state hostonly mode:

      * generic: by passing "--no-hostonly" or not passing anything.
                 "--hostonly-mode" has no effect in such case.
      * sloppy: by passing "--hostonly --hostonly-mode sloppy". This
                is also the default mode when only "--hostonly" is given.
      * strict: by passing "--hostonly --hostonly-mode strict".
    

    Sloppy mode is the original hostonly mode, the new introduced strict mode will allow modules to ignore more drivers or do some extra job to save memory and disk space, while making the image less portable.

    Also introduced a helper function "optional_hostonly" to make it easier for modules to leverage new hostonly mode.

    To force install modules only in sloppy hostonly mode, use the form:

    hostonly="$(optional_hostonly)" instmods

dracut-install:

  • don't error out, if no modules were installed
  • support modules.softdep

lsinitrd.sh:

  • fixed zstd file signature

kernel:

  • include all pci/host modules
  • add mmc/core for arm
  • Include Intel Volume Management Device support

plymouth:

  • fix detection of plymouth directory

drm:

  • make failing installation of drm modules nonfatal
  • include virtio DRM drivers in hostonly initramfs

stratis:

  • initial Stratis support

crypt:

  • correct s390 arch to include arch-specific crypto modules
  • add cmdline rd.luks.partuuid
  • add timeout option rd.luks.timeout

shutdown:

  • sleep a little, if a process was killed

network:

  • introduce ip=either6 option

iscsi:

  • replace iscsistart with iscsid

qeth_rules:

  • new module to copy qeth rules

multipath-hostonly:

  • merged back into multipath

mdraid:

  • fixed case if rd.md.uuid is in ID_FS_UUID format

dracut-047

dracut.sh:

  • sync initramfs to filesystem with fsfreeze
  • introduce "--no-hostonly-default-device"
  • disable lsinitrd logging when quiet
  • add support for Zstandard compression
  • fixed relative paths in --kerneldir
  • if /boot/vmlinuz-$version exists use /boot/ as default output dir
  • make qemu and qemu-net a default module in non-hostonly mode
  • fixed relative symlinks
  • support microcode updates for all AMD CPU families
  • install all modules-load.d regardless of hostonly
  • fixed parsing of "-i" and "--include"
  • bump kmod version to >= 23
  • enable 'early_microcode' by default
  • fixed check_block_and_slaves() for nvme

lsinitrd.sh:

  • dismiss "cat" error messages

systemd-bootchart:

  • removed

i18n:

  • install all keymaps for a given locale
  • add correct fontmaps

dmsquash-live:

  • fixed systemd unit escape

systemd:

  • enable core dumps with systemd from initrd
  • fixed setting of timeouts for device units
  • emergency.service: use Type=idle and fixed task limit

multipath:

  • include files from /etc/multipath/conf.d
  • do not fail startup on missing configuration
  • start daemon after udev settle
  • add shutdown script
  • parse kernel commandline option 'multipath=off'
  • start before local-fs-pre.target

dracut-emergency:

  • optionally print filesystem help

network:

  • fixed MTU for bond master
  • fixed race condition when wait for networks

fcoe:

  • handle CNAs with DCB firmware support
  • allow to specify the FCoE mode via the fcoe= parameter
  • always set AUTO_VLAN for fcoemon
  • add shutdown script
  • fixup fcoe-genrules.sh for VN2VN mode
  • switch back to using fipvlan for bnx2fc
  • add timeout mechanism

crypt:

  • add basic LUKS detached header support
  • escape backslashes for systemd unit names correctly
  • put block_uuid.map into initramfs

dmraid:

  • do not delete partitions

dasd_mod:

  • do not set module parameters if dasd_cio_free is not present

nfs:

  • fix mount if IPv4 address is used in /etc/fstab
  • support host being a DNS ALIAS

fips:

  • fixed creating path to .hmac of kernel based on BOOT_IMAGE
  • turn info calls into fips_info calls
  • modprobe failures during manual module loading is not fatal

lunmask:

  • add module to handle LUN masking

s390:

  • add rd.cio_accept

dcssblk:

  • add new module for DCSS block devices

zipl:

  • add new module to update s390x configuration

iscsi:

  • no more iscsid, either iscsistart or iscsid

integrity:

  • support loading x509 into the trusted/builtin .evm keyring
  • support X.509-only EVM configuration

plymouth:

  • improve distro compatibility

dracut-046

dracut.sh:

  • bail out if module directory does not exist if people want to build the initramfs without kernel modules, then --no-kernel should be specified
  • add early microcode support for AMD family 16h
  • collect also all modaliases modules from sysfs for hostonly modules
  • sync initramfs after creation

network:

  • wait for IPv6 RA if using none/static IPv6 assignment
  • ipv6 improvements
  • Handle curl using libnssckbi for TLS
  • fix dhcp classless_static_routes
  • dhclient: send client-identifier matching hardware address
  • don't arping for point-to-point connections
  • only bring up wired network interfaces (no wlan and wwan)

mraid:

  • mdraid: wait for rd.md.uuid specified devices to be assembled

crypt:

  • handle rd.luks.name

crypt-gpg:

  • For GnuPG >= 2.1 support OpenPGP smartcards

kernel-install:

  • Skip to create initrd if /etc/machine-id is missing or empty

nfs:

  • handle rpcbind /run/rpcbind directory

s390:

  • various fixes

dmsquash-live:

  • add NTFS support

multipath:

  • split out multipath-hostonly module

lvmmerge:

  • new module, see README.md in the module directory

dracut-systemd:

  • fixed dependencies

dracut-045

Important: dracut now requires libkmod for the dracut-install binary helper, which nows handles kernel module installing and filtering.

dracut.sh:

  • restorecon final image file
  • fail hard, if we find modules and modules.dep is missing
  • support --tmpdir as a relative path
  • add default path for --uefi

dracut-functions.sh:

  • fix check_vol_slaves() volume group name stripping

dracut-install:

  • catch ldd message "cannot execute binary file"
  • added kernel module handling with libkmod Added parameters: --module,-m --mod-filter-path, -p --mod-filter-nopath, -P --mod-filter-symbol, -s --mod-filter-nosymbol, -S --mod-filter-noname, -N --silent --kerneldir --firmwaredirs
  • fallback to non-hostonly mode if lsmod fails

lsinitrd:

  • new option "--unpack"
  • new option "--unpackearly"
  • and "--verbose"

general initramfs fixes:

  • don't remove 99-cmdline-ask on 'hostonly' cleanup
  • call dracut-cmdline-ask.service, if /etc/cmdline.d/*.conf exists
  • break at switch_root only for bare rd.break
  • add rd.emergency=[reboot|poweroff|halt] specifies what action to execute in case of a critical failure
  • rd.memdebug=4 gives information, about kernel module memory consumption during loading

dmsquash-live:

  • fixed livenet-generator execution flag and include only, if systemd is used

  • fixed dmsquash-live-root.sh for cases where the fstype of the liveimage is squashfs

  • fixed typo for rootfs.img

  • enable the use of the OverlayFS for the LiveOS root filesystem Patch notes: Integrate the option to use an OverlayFS as the root filesystem into the 90dmsquash-live module for testing purposes.

    The rd.live.overlay.overlayfs option allows one to request an OverlayFS overlay. If a persistent overlay is detected at the standard LiveOS path, the overlay & type detected will be used.

    Tested primarily with transient, in-RAM overlay boots on vfat- formatted Live USB devices, with persistent overlay directories on ext4-formatted Live USB devices, and with embedded, persistent overlay directories on vfat-formatted devices. (Persistent overlay directories on a vfat-formatted device must be in an embedded filesystem that supports the creation of trusted.* extended attributes, and must provide valid d_type in readdir responses.)

    The rd.live.overlay.readonly option, which allows a persistent overlayfs to be mounted read only through a higher level transient overlay directory, has been implemented through the multiple lower layers feature of OverlayFS.

    The default transient DM overlay size has been adjusted up to 32 GiB. This change supports comparison of transient Device-mapper vs. transient OverlayFS overlay performance. A transient DM overlay is a sparse file in memory, so this setting does not consume more RAM for legacy applications. It does permit a user to use all of the available root filesystem storage, and fails gently when it is consumed, as the available free root filesystem storage on a typical LiveOS build is only a few GiB. Thus, when booted on other- than-small RAM systems, the transient DM overlay should not overflow.

    OverlayFS offers the potential to use all of the available free RAM or all of the available free disc storage (on non-vfat-devices) in its overlay, even beyond the root filesystem available space, because the OverlayFS root filesystem is a union of directories on two different partitions.

    This patch also cleans up some message spew at shutdown, shortens the execution path in a couple of places, and uses persistent DM targets where required.

dmraid:

  • added "nowatch" option in udev rule, otherwise udev would reread partitions for raid members
  • allow booting from degraded MD RAID arrays

shutdown:

  • handle readonly /run on shutdown

kernel-modules:

  • add all HID drivers, regardless of hostonly mode people swap keyboards sometimes and should be able to enter their disk password
  • add usb-storage To save the rdsosreport.txt to a USB stick, the usb-storage module is needed.
  • add xennet
  • add nvme

systemd:

  • add /etc/machine-info
  • fixed systemd-escape call for names beginning with "-"
  • install missing drop-in configuration files for /etc/systemd/{journal.conf,system.conf}

filesystems:

  • add support to F2FS filesystem (fsck and modules)

network:

  • fix carrier detection
  • correctly set mac address for ip=...::
  • fixed vlan, bonding, bridging, team logic call ifup for the slaves and assemble afterwards
  • add mtu to list of variables to store in override
  • for rd.neednet=0 a bootdev is not needed anymore
  • dhclient-script.sh: add classless-static-routes support
  • support for iBFT IPv6
  • support macaddr in brackets [] (commit 740c46c0224a187d6b5a42b4aa56e173238884cc)
  • use arping2, if available
  • support multiple default gateways from DHCP server
  • fixup VLAN handling
  • enhance team support
  • differ between ipv6 local and global tentative
  • ipv6: wait for a router advertised route
  • add 'mtu' parameter for bond options
  • use 'ip' instead of 'brctl'

nbd:

  • add systemd generator
  • use export names instead of port numbers, because port number based exports are deprecated and were removed.

fcoe:

  • no more /dev/shm state copying

multipath:

  • check all /dev/mapper devices if they are multipath devices, not only mpath*

fips:

  • fixed .hmac installation in FIPS mode

plymouth:

  • also trigger the acpi subsystem

syslog:

  • add imjournal.so to read systemd journal
  • move start from udev to initqueue/online

caps:

  • make it a non default module

livenet:

  • support nfs:// urls in livenet-generator

nfs:

  • install all nfs modules non-hostonly

crypt:

  • support keyfiles embedded in the initramfs

testsuite:

  • add TEST-70-BONDBRIDGETEAMVLAN
  • make "-cpu host" the default

dracut-044

creation:

  • better udev & systemd dir detection
  • split dracut-functions.sh in dracut-init.sh and dracut-functions.sh dracut-functions.sh can now be sourced by external tools
  • detect all btrfs devices needed
  • added flag file if initqueue is needed
  • don't overwrite anything, if initramfs image file creation failed
  • if no compressor is specified, try to find a suitable one
  • drop scanning kernel config for CONFIG_MICROCODE_*_EARLY
  • remove "EARLY" from CONFIG_MICROCODE* checks
  • dracut.sh: add command line option for install_i18_all --no-hostonly-i18n -> install_i18n_all=yes --hostonly-i18n -> install_i18n_all=no
  • --no-reproducible to turn off reproducible mode
  • dracut-function.sh can now be sourced from outside of dracut
  • dracut-init.sh contains all functions, which only can be used from within the dracut infrastructure
  • support --mount with just mountpoint as a parameter
  • removed action_on_fail support
  • removed host_modalias concept
  • do not create microcode, if no firmware is available
  • skip gpg files in microcode generation

initramfs:

  • ensure pre-mount (and resume) run before root fsck
  • add --online option to initqueue

qemu:

  • fixed virtual machine detection

lvm:

  • remove all quirk arguments for lvm >= 2.2.221

dmsquash:

  • fixup for checkisomd5
  • increase timeout for checkisomd5
  • use non-persistent metadata snapshots for transient overlays.
  • overflow support for persistent snapshot.
  • use non-persistent metadata snapshots.
  • avoid an overlay for persistent, uncompressed, read-write live installations.

multipath:

  • multipath.conf included in hostonly mode
  • install all multipath path selector kernel modules

iSCSI:

  • use the iBFT initiator name, if found and set
  • iscsid now present in the initramfs
  • iscsistart is done with systemd-run asynchrone to do things in paralllel. Also restarted for every new interface which shows up.
  • If rd.iscsi.waitnet (default) is set, iscsistart is done only after all interfaces are up.
  • If not all interfaces are up and rd.iscsi.testroute (default) is set, the route to a iscsi target IP is checked and skipped, if there is none.
  • If all things fail, we issue a "dummy" interface iscsiroot to retry everything in the initqueue/timeout.

network:

  • added DHCP RENEW/REBIND

  • IPv4 DHCP lease time now optional (bootp)

  • IPv6 nfs parsing

  • fixed IPv6 route parsing

  • rd.peerdns=0 parameter to disable DHCP nameserver setting

  • detect duplicate IPv4 addresses for static addresses

  • if interfaces are specified with its enx* name, bind the correspondent MAC to the interface name

  • if multiple "ip=" are present on the kernel command line "rd.neednet=1" is assumed

  • add options to tweak timeouts rd.net.dhcp.retry= If this option is set, dracut will try to connect via dhcp times before failing. Default is 1.

    rd.net.timeout.dhcp= If this option is set, dhclient is called with "-timeout ".

    rd.net.timeout.iflink= Wait until link shows up. Default is 60 seconds.

    rd.net.timeout.ifup= Wait until link has state "UP". Default is 20 seconds.

    rd.net.timeout.route= Wait until route shows up. Default is 20 seconds.

    rd.net.timeout.ipv6dad= Wait until IPv6 DAD is finished. Default is 50 seconds.

    rd.net.timeout.ipv6auto= Wait until IPv6 automatic addresses are assigned. Default is 40 seconds.

    rd.net.timeout.carrier= Wait until carrier is recognized. Default is 5 seconds.

IMA:

  • load signed certificates in the IMA keyring, see modules.d/98integrity/README
  • load EVM public key in the kernel _evm keyring

FCoE: fcoe: start with fcoemon instead of fipvlan

dracut-043

  • add missing dmsquash-generator

dracut-042

  • fixed dmsetup shutdown
  • new kernel command line option "rd.live.overlay.thin" This option changes the underlying mechanism for the overlay in the dmsquash module. Instead of a plain dm snapshot a dm thin snapshot is used. The advantage of the thin snapshot is, that the TRIM command is recognized, which means that at runtime, only the occupied blocks will be claimed from memory, and freed blocks will really be freed in ram.
  • dmsquash: Add squashfs support to rd.live.fsimg Previously rd.live.fsimg only supported filesystems residing in (compressed) archives. Now rd.live.fsimg can also be used when a squashfs image is used. This is achieved by extracting the rootfs image from the squashfs and then continue with the default routines for rd.live.fsimg.
  • lvm: add support for LVM system id
  • split up the systemd dracut module Basic systemd functionality is in 00systemd now. Switching root and the initrd.target is in 00systemd-initrd. Dracut additions to the systemd initrd are in 98dracut-systemd.
  • support for creating a UEFI boot executable via argument "--uefi" With an EFI stub, the kernel, the initramfs and a kernel cmdline can be glued together to a single UEFI executable, which can be booted by a UEFI BIOS.
  • network: split out kernel-network-modules, now in 90kernel-network-modules
  • support for ethernet point-to-point connections configured via DHCP
  • kernel-modules: install all HID drivers
  • dracut.pc pkg-config file
  • mount /dev, /dev/shm and /run noexec

dracut-041

  • fixed the shutdown loop
  • fixed gzip compression for versions, which do not have --rsyncable
  • fixed ifcfg generation for persistent interface names
  • multipath:
    • new option to turn off multipath "rd.multipath=0" completly
    • preload scsi dh modules
    • start multipathd via systemd service
  • do not fail, if user pressed ESC during media check
  • fixed systemd-journal by symlinking /var/log to /run/initramfs/log
  • initrd-release moved to /usr/lib
  • lots of iSCSI fixes
  • new "rd.timeout" to specify the systemd JobTimeoutSec for devices
  • if $initrd/etc/cmdline.d/* has a "root=" and the kernel cmdline does not, generate a mount unit for it
  • increased the initqueue timeout for non systemd initramfs to 180s
  • $initrd/etc/cmdline.d/ hostonly files are now generated for NFS
  • make use of systemd-hibernate-resume, if available
  • fixed ldconfig parsing for hwcap output
  • network: add support for comma separated autoconf options like ip=eth0:auto6,dhcp
  • new parameter "rd.live.overlay.size" to specify the overlay for live images
  • changed the test suite for the new sfdisk syntax
  • added cache tools for dm-cache setups

dracut-040

  • fixed dracut module dependency checks
  • fixed test suite

dracut-039

  • DRACUT_PATH can now be used to specify the PATH used by dracut to search for binaries instead of the default /usr/sbin:/sbin:/usr/bin:/bin This should be set in the distribution config file /usr/lib/dracut/dracut.conf.d/01-dist.conf
  • add "--loginstall " and loginstall="" options to record all files, which are installed from the host fs
  • "rd.writable.fsimg" - support for read/write filesystem images
  • "rd.route" kernel command line parameter added
  • "--install-optional" and install_optional_items added
  • find plymouth pkglibdir on debian
  • torrent support for live images root=live:torrent://example.com/liveboot.img.torrent and generally added as a download handler
  • disable microcode, if the kernel does not support it
  • speed up ldconfig_paths()
  • more ARM modules
  • fixed inst*() functions and "-H" handling
  • fixed bridge setup
  • added --force-drivers parameter and force_drivers=+ config option to enforce driver loading at early boot time
  • documented "iso-scan/filename" usage in grub
  • various bugfixes

dracut-038

  • "rd.cmdline=ask" will ask the user on the console to enter additional kernel command line parameters
  • "rd.hostonly=0" removes all "hostonly" added custom files, which is useful in combination with "rd.auto" or other specific parameters, if you want to boot on the same hardware, but the compiled in configuration does not match your setup anymore
  • inst* functions and dracut-install now accept the "-H" flag, which logs all installed files to /lib/dracut/hostonly-files. This is used to remove those files, if rd.hostonly is given on the kernel command line
  • strstr now only does literal string match, please use strglob and strglobin for globs
  • fixed unpacking of the microcode image on shutdown
  • added systemd-gpt-auto-generator
  • fcoe: wait for lldpad to be ready
  • network: handle "ip=dhcp6"
  • network: DCHPv6: set valid_lft and preferred_lft
  • dm: support dm-cache
  • fstab: do not mount and fsck from fstab if using systemd
  • break at switch_root only for bare rd.break and not for any rd.break=...
  • nbd: make use of "--systemd-mark", otherwise it gets killed on switch_root
  • fcoe-uefi: fixed cmdline parameter generation
  • iscsi: deprecate "ip=ibft", use "rd.iscsi.ibft[=1]" from now on
  • "lsinitrd -m" now only lists the dracut modules of the image
  • a lot of small bugfixes

dracut-037

  • dracut: hostonly_cmdline variable and command line switch Toggle hostonly cmdline storing in the initramfs --hostonly-cmdline: Store kernel command line arguments needed in the initramfs --no-hostonly-cmdline: Do not store kernel command line arguments needed in the initramfs
  • dracut: --mount now understands full fstab lines
  • dracut now also includes drivers from the /lib/modules//updates directory
  • dracut: only set the owner of files to 0:0, if generated as non-root
  • dracut now directly writes to the initramfs file
  • dracut: call lz4 with the legacy flag (linux kernel does not support the new format)
  • systemd: rootfs-generator generates JobTimeout=0 units for the root device
  • systemd: added the systemd-sysctl service
  • systemd: add 80-net-setup-link.rules and .link files for persistent interface renaming
  • systemd: make dracut-shutdown.service failure non-fatal
  • network: various IPv6 fixes
  • network: DCHCP for IPv6
  • network: understand ip=.....::
  • network: parse ibft nameserver settings
  • shutdown: if kexec fails, just reboot
  • lvm: handle one LV at a time with lvchange
  • module-setup.sh: New functions require_binaries() and require_any_binary() to be used in the check() section of module-setup.sh.
  • a lot of small bugfixes

Contributions from: Harald Hoyer Alexander Tsoy Till Maas Amadeusz Żołnowski Brian C. Lane Colin Guthrie Dave Young WANG Chao Shawn W Dunn

dracut-036

  • fixed skipcpio signature checking

dracut-035

  • changed dracut tarball compression to xz
  • new argument "--rebuild"
  • add lzo, lz4 compression
  • install: install all binaries with found in PATH
  • lsinitrd can now handle initramfs images with an early cpio prepended (microcode, ACPI tables)
  • mkinitrd-suse added as a compat stub for dracut
  • lvm: install thin utils for non-hostonly
  • resume: fix swap detection in hostonly
  • avoid loading unnecessary 32-bit libraries for 64-bit initrds
  • crypt: wait for systemd password agents
  • crypt: skip crypt swaps with password files
  • network: before doing dhcp, dracut now checks, if the link has a carrier
  • network: dhclient-script.sh now sets the lease time
  • network: include usbnet drivers
  • network: include all ethernet drivers
  • network: add rd.bootif=0 to ignore BOOTIF
  • i18n: introduce i18n_install_all, to install everything i18n related
  • support SuSE DASD configurations
  • support SuSE zfcp configurations
  • support SuSE compressed KEYMAP= setting
  • usrmount: always install the module, so always mount /usr from within the initramfs
  • test/TEST-17-LVM-THIN: new test case for lvm thin pools
  • "halt" the machine in systemd mode for die()

dracut-034

  • do not run dhcp on parts of assembled network interfaces (bond, bridge)
  • add option to turn on/off prelinking --prelink, --noprelink do_prelink=[yes|no]
  • add ACPI table overriding
  • do not log to syslog/kmsg/journal for UID != 0
  • lvm/mdraid: Fix LVM on MD activation
  • bcache module removed (now in bcache-tools upstream)
  • mdadm: also install configs from /etc/mdadm.conf.d
  • fixes for mdadm-3.2.6+
  • mkinitrd: better compat support for SUSE
  • fcoe: add FCoE UEFI boot device support
  • rootfs-block: add support for the rootfallback= kernel cmdline option

Contributions from: Thomas Renninger Alexander Tsoy Peter Rajnoha WANG Chao Harald Hoyer

dracut-033

  • improved hostonly device recognition
  • improved hostonly module recognition
  • add dracut.css for dracut.html
  • do not install udev rules from /etc in generic mode
  • fixed LABEL= parsing for swap devices
  • fixed iBFT network setup
  • url-lib.sh: handle 0-size files with curl
  • dracut.asc: document debugging dracut on shutdown
  • if rd.md=0, use dmraid for imsm and ddf
  • skip empty dracut modules
  • removed caching of kernel cmdline
  • fixed iso-scan, if the loop device driver is a kernel module
  • bcache: support new blkid
  • fixed ifup udev rules
  • ifup with dhcp, if no "ip=" specified for the interface

Contributions from: WANG Chao Colin Walters Harald Hoyer

dracut-032

  • add parameter --print-cmdline This prints the kernel command line parameters for the current disk layout. $ dracut --print-cmdline rd.luks.uuid=luks-e68c8906-6542-4a26-83c4-91b4dd9f0471 rd.lvm.lv=debian/root rd.lvm.lv=debian/usr root=/dev/mapper/debian-root rootflags=rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered rootfstype=ext4
  • dracut.sh: add --persistent-policy option and persistent_policy conf option --persistent-policy : Use to address disks and partitions. can be any directory name found in /dev/disk. E.g. "by-uuid", "by-label"
  • dracut now creates the initramfs without udevadm that means the udev database does not have to populated and the initramfs can be built in a chroot with /sys /dev /proc mounted
  • renamed dracut_install() to inst_multiple() for consistent naming
  • if $libdirs is unset, fall back to ld.so.cache paths
  • always assemble /usr device in initramfs
  • bash module added (disable it, if you really want dash)
  • continue to boot, if the main loop times out, in systemd mode
  • removed inst*() shell pure versions, dracut-install binary is in charge now
  • fixed ifcfg file generation for vlan
  • do not include adjtime and localtime anymore
  • fixed generation of zfcp.conf of CMS setups
  • install vt102 terminfo dracut_install() is still there for backwards compat
  • do not strip files in FIPS mode
  • fixed iBFT interface configuration
  • fs-lib: install fsck and fsck.ext*
  • shutdown: fixed killall_proc_mountpoint()
  • network: also wait for ethernet interfaces to setup
  • fixed checking for FIPS mode

Contributions from: Harald Hoyer WANG Chao Baoquan He Daniel Schaal Dave Young James Lee Radek Vykydal

dracut-031

  • do not include the resume dracut module in hostonly mode, if no swap is present
  • don't warn twice about omitted modules
  • use systemd-cat for logging on systemd systems, if logfile is unset
  • fixed PARTUUID parsing
  • support kernel module signing keys
  • do not install the usrmount dracut module in hostonly mode, if /sbin/init does not live in /usr
  • add debian udev rule files
  • add support for bcache
  • network: handle bootif style interfaces e.g. ip=77-77-6f-6f-64-73:dhcp
  • add support for kmod static devnodes
  • add vlan support for iBFT

Contributions from: Harald Hoyer Amadeusz Żołnowski Brandon Philips Colin Walters James Lee Kyle McMartin Peter Jones

dracut-030

  • support new persistent network interface names
  • fix findmnt calls, prevents hang on stale NFS mounts
  • add systemd.slice and slice.target units
  • major shell cleanup
  • support root=PARTLABEL= and root=PARTUUID=
  • terminfo: only install l/linux v/vt100 and v/vt220
  • unset all LC_* and LANG, 10% faster
  • fixed dependency loop for dracut-cmdline.service
  • do not wait_for_dev for the root devices
  • do not wait_for_dev for devices, if dracut-initqueue is not needed
  • support early microcode loading with --early-microcode
  • dmraid, let dmraid setup its own partitions
  • sosreport renamed to rdsosreport

Contributions from: Harald Hoyer Konrad Rzeszutek Wilk WANG Chao

dracut-029

  • wait for IPv6 autoconfiguration
  • i18n: make the default font configurable To set the default font for your distribution, add i18n_default_font="latarcyrheb-sun16" to your /lib/dracut/dracut.conf.d/01-dist.conf distribution config.
  • proper handle "rd.break" in systemd mode before switch-root
  • systemd: make unit files symlinks
  • build without dash requirement
  • add dracut-shutdown.service.8 manpage
  • handle MACs for "ip=" "ip=77-77-6f-6f-64-73:dhcp"
  • don't explode when mixing BOOTIF and ip=
  • 90lvm/module-setup.sh: redirect error message of lvs to /dev/null

Contributions from: Harald Hoyer Will Woods Baoquan He

dracut-028

  • full integration of crypto devs in systemd logic
  • support for bridge over team and vlan tagged team
  • support multiple bonding interfaces
  • new kernel command line param "rd.action_on_fail" to control the emergency action
  • support for bridge over a vlan tagged interface
  • support for "iso-scan/filename" kernel parameter
  • lsinitrd got some love and does not use "file" anymore
  • fixed issue with noexec mounted tmp dirs
  • FIPS mode fixed
  • dracut_install got some love
  • fixed some /usr mounting problems
  • ifcfg dracut module got some love and fixes
  • default installed font is now latarcyrheb-sun16
  • new parameters rd.live.dir and rd.live.squashimg
  • lvm: add tools for thin provisioning
  • also install non-hwcap libs
  • setup correct system time and time zone in initrd
  • s390: fixed cms setup
  • add systemd-udevd persistent network interface naming

Contributions from: Harald Hoyer Kamil Rytarowski WANG Chao Baoquan He Adam Williamson Colin Guthrie Dan Horák Dave Young Dennis Gilmore Dennis Schridde

dracut-027

  • dracut now has bash-completion
  • require bash version 4
  • systemd module now requires systemd >= 199
  • dracut makes use of native systemd initrd units
  • added hooks for new-kernel-pkg and kernel-install
  • hostonly is now default for fedora
  • comply with the BootLoaderSpec paths http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
  • added rescue module
  • host_fs_types is now a hashmap
  • new dracut argument "--regenerate-all"
  • new dracut argument "--noimageifnotneeded"
  • new man page dracut.bootup
  • install all host filesystem drivers
  • use -D_FILE_OFFSET_BITS=64 to build dracut-install

dracut-026

  • introduce /usr/lib/dracut/dracut.conf.d/ drop-in directory

    /usr/lib/dracut/dracut.conf.d/*.conf can be overwritten by the same filenames in /etc/dracut.conf.d.

    Packages should use /usr/lib/dracut/dracut.conf.d rather than /etc/dracut.conf.d for drop-in configuration files.

    /etc/dracut.conf and /etc/dracut.conf.d belong to the system administrator.

  • uses systemd-198 native initrd units

  • totally rely on the fstab-generator in systemd mode for block devices

  • dracut systemd now uses dracut.target rather than basic.target

  • dracut systemd services optimize themselves away

  • fixed hostonly parameter generation

  • turn off curl globbing (fixes IPv6)

  • modify the udev rules on install and not runtime time

  • enable initramfs building without kernel modules (fixed regression)

  • in the initqueue/timeout, reset the main loop counter, as we see new udev events or initqueue/work

  • fixed udev rule installation

dracut-025

  • do not strip signed kernel modules
  • add sosreport script and generate /run/initramfs/sosreport.txt
  • make short uuid specification for allow-discards work
  • turn off RateLimit for the systemd journal
  • fixed MAC address assignment
  • add systemd checkisomd5 service
  • splitout drm kernel modules from plymouth module
  • add 'swapoff' to initramfs to fix shutdown/reboot
  • add team device support
  • add pre-shutdown hook
  • kill all processes in shutdown and report remaining ones
  • "--device" changed to "--add-device" and "add_device=" added for conf files
  • add memory usage trace to different hook points
  • cope with optional field #7 in /proc/self/mountinfo
  • lots of small bugfixes

dracut-024

  • new dracut option "--device"
  • new dracut kernel command line options "rd.auto"
  • new dracut kernel command line options "rd.noverifyssl"
  • new dracut option "--kernel-cmdline" and "kernel_cmdline" option for default parameters
  • fixes for systemd and crypto
  • fix for kexec in shutdown, if not included in initramfs
  • create the initramfs non-world readable
  • prelink/preunlink in the initramfs
  • strip binaries in the initramfs by default now
  • various FIPS fixes
  • various dracut-install fixes

dracut-023

  • resume from hibernate fixes
  • -N option for --no-hostonly
  • support for systemd crypto handling
  • new dracut module "crypt-loop"
  • deprecate the old kernel command line options
  • more documentation
  • honor CFLAGS for dracut-install build
  • multipath fixes
  • / is mounted according to rootflags parameter but forced ro at first. Later it is remounted according to /etc/fstab + rootflags parameter and "ro"/"rw".
  • support for xfs / reiserfs separate journal device
  • new "ro_mnt" option to force ro mount of / and /usr
  • root on cifs support
  • dracut-install: fixed issue for /var/tmp containing a symlink
  • only lazy resolve with ldd, if the /var/tmp partition is not mounted with "noexec"
  • i18n: fixed inclusion of "include" keymaps

dracut-022

  • fixed host-only kernel module bug

dracut-021

  • fixed systemd in the initramfs (requires systemd >= 187)

  • dracut-install: massive speedup with /var on the same filesystem with COW copy

  • dracut-install: moved to /usr/lib/dracut until it becomes a general purpose tool

  • new options: "rd.usrmount.ro" and "rd.skipfsck"

  • less mount/umount

  • apply "ro" on the kernel command line also to /usr

  • mount according to fstab, if neither "ro" or "rw" is specified

  • skip fsck for xfs and btrfs. remount is enough

  • give emergency_shell if /usr mount failed

  • dracut now uses getopt:

    • options can be position independent now!!
    • we can now use --option=
  • added option "--kver=", and the image location can be omitted

    dracut --kver 3.5.0-0.rc7.git1.2.fc18.x86_64

  • dracut.sh: for --include copy also the symbolic links

  • man pages: lsinitrd and mkinitrd added

  • network: We do not support renaming in the kernel namespace anymore (as udev does that not anymore). So, if a user wants to use ifname, he has to rename to a custom namespace. "eth[0-9]+" is not allowed anymore. !!!!!

  • resume: moved the resume process to the initqueue. This should prevent accidently mounting the root file system.

  • testsuite: add support for: make V=1 TESTS="01 20 40" check $ sudo make V=1 clean check now runs the testsuite in verbose mode

    $ sudo make TESTS="01 20 40" clean check now only runs the 01, 20 and 40 tests.

dracut-020

  • changed rd.dasd kernel parameter
  • arm kernel modules added to kernel-modules
  • make udevdir systemdutildir systemdsystemunitdir global vars your distribution should ship those settings in /etc/dracut.conf.d/01-distro.conf see dracut.conf.d/fedora.conf.example
  • kernel modules are now only handled with /sys/modules and modules.dep
  • systemd fixups
  • mdraid: wait for md devices to be clean, before shutdown
  • ifup fixed for ipv6
  • add PARTUUID as root=PARTUUID= parameter
  • fixed instmods() return code and set pipefail globally
  • add 04watchdog dracut module
  • dracut-shutdown.service: fixed ordering to be before shutdown.target
  • make use of "ln -r" instead of shell functions, if new coreutils is installed
  • network: support vlan tagged bonding
  • new dracut module qemu and qemu-net to install all kernel driver
  • fs-lib/fs-lib.sh: removed test mounting of btrfs and xfs
  • no more "mknod" in the initramfs!!
  • replaced all "tr" calls with "sed"
  • speedup with lazy kernel module dependency resolving
  • lots of speedup optimizations and last but not least
  • dracut-install:
    • new binary to significanlty speedup the installation process
    • dracut-functions.sh makes use of it, if installed

dracut-019

  • initqueue/online hook
  • fixes for ifcfg write out
  • rootfs-block: avoid remount when options don't change
  • Debian multiarch support
  • virtfs root filesystem support
  • cope with systemd-udevd
  • mount tmpfs with strictatime
  • include all kernel/drivers/net/phy drivers
  • add debug_on() and debug_off() functions
  • add arguments for source_hook() and source_all()
  • cleanup hook
  • plymouth: get consoledev from /sys/class/tty/console/active
  • experimental systemd dracut module for systemd in the initramfs
  • install xhci-hcd kernel module
  • dracut: new "--mount" option
  • lsinitrd: new option --printsize
  • ARM storage kernel modules added
  • s390 cms conf file support
  • /etc/initrd-release in the initrd
  • vlan support
  • full bonding and bridge support
  • removed scsi_wait_scan kernel module from standard install
  • support rd.luks.allow-discards and honor options in crypttab
  • lots of bugfixes

dracut-018

  • lvm: ignore lvm mirrors
  • lsinitrd: handle LZMA images
  • iscsi: add rd.iscsi.param
  • iscsi: add iscsi interface binding
  • new module cms to read and handle z-Series cms config files
  • fixed fstab.sys handling
  • new dracut option "--tmpdir"
  • new dracut option "--no-hostonly"
  • nbd: name based nbd connects
  • converted manpage and documentation source to asciidoc
  • write-ifcfg fixes and cleanups
  • ifup is now done in the initqueue
  • netroot cleanup
  • initqueue/online is now for hooks, which require network
  • no more /tmp/root.info
  • 98pollcdrom: factored out the ugly cdrom polling in the main loop
  • simplified rd.luks.uuid testing
  • removed "egrep" and "ls" calls
  • speedup kernel module installation
  • make bzip2 optional
  • lots of bugfixes

dracut-017

  • a lot faster than dracut-016 in image creation
  • systemd service dracut-shutdown.service
  • livenet fixes
  • ssh-client module install fix
  • root=iscsi:... fixed
  • lots of restructuring and optimizing in dracut-functions.sh
  • usrmount: honor fs_passno in /etc/fstab
  • renamed all shell scripts to .sh
  • new option "--omit-drivers" and config option "omit_drivers"
  • hostonly mode fixups

dracut-016

  • fixed lsinitrd
  • honor binaries in sbin first
  • fixed usrmount module
  • added systemd service for shutdown
  • fixed terminfo on distros with /usr/share/terminfo
  • reload udev rules after "pre-trigger" hook
  • improved test suite
  • new parameter "--omit-drivers" and new conf param omit_drivers
  • "--offroot" support for mdraid
  • new libs: net-lib.sh, nfs-lib.sh, url-lib.sh, img-lib.sh full of functions to use in your dracut module

dracut-015

  • hostonly mode automatically adds command line options for root and /usr
  • --add-fstab --mount parameters
  • ssh-client module
  • --ctty option: add job control
  • cleanup /run/initramfs
  • convertfs module
  • /sbin/ifup can be called directly
  • support kernel modules compressed with xz
  • s390 iscsi modules added
  • terminfo module
  • lsinitrd can handle concatened images
  • lsinitrd can sort by size

dracut-014

  • new dracut arguments: --lvmconf --nolvmconf --fscks [LIST] --nofscks
  • new .conf options: install_items fscks nofscks
  • new kernel options: rd.md.ddf rd.md.waitclean plymouth.enable
  • dracut move from /sbin to /usr/bin
  • dracut modules dir moved from /usr/share/dracut to /usr/lib/dracut
  • profiling with "dracut --profile"
  • new TEST-16-DMSQUASH, test for Fedora LiveCDs
  • speedup of initramfs creation
  • ask_for_password fallback to CLI
  • mdraid completely switched to incremental assembly
  • no more cdrom polling
  • "switch_root" breakpoint is now very late
  • /dev/live is gone
  • /dev/root is gone
  • fs-lib dracut module for fscks added
  • xen dracut module removed
  • usb mass storage kernel drivers now included
  • usrmount dracut module added: mount /usr if found in /sysroot/etc/fstab
  • only include fsck helper needed for hostonly
  • fcoe: support for bnx2fc
  • support iSCSI drivers: qla4xxx, cxgb3i, cxgb4i, bnx2i, be2iscsi
  • fips-aesni dracut module added
  • add install_items to dracut.conf install_items+=" [ ...] "
  • speedup internal testsuite
  • internal testsuite: store temporary data in a temporary dir

dracut-013

  • speedup of initramfs creation
  • fixed inst_dir for symbolic links
  • add unix kernel module

dracut-012

  • better fsck handling
  • fixed wait condition for LVM volumes
  • fix for hardlinks (welcome Debian! :-)
  • shutdown bugfixes
  • automatic busybox symlink creation
  • try to mount /usr, if init points to a path in /usr
  • btrfs with multiple devices
  • "--force-add" option for dracut, to force-add dracut modules, without hostonly checks
  • lsinitrd also display the initramfs size in human readable form
  • livenet module, to mount live-isos over http
  • masterkey,ecryptfs,integrity security modules
  • initqueue/timeout queue e.g. for starting degraded raids
  • "make rpm" creates an rpm with an increasing release number from any git checkout
  • support lvm mirrors
  • start degraded lvm mirrors after a timeout
  • start degraded md raids after a timeout
  • getarg() now returns wildcards without file matching to the current fs
  • lots of bugfixes

dracut-011

  • use udev-168 features for shutting down udev
  • introduce "--prefix" to put all initramfs files in e.g "/run/initramfs"
  • new shutdown script (called by systemd >= 030) to disassemble the root device
  • lots of bugfixes
  • new module for gpg-encrypted keys - 91crypt-gpg

dracut-010

  • lots of bugfixes
  • plymouth: use /run/plymouth/pid instead of /run/initramfs/plymouth
  • add "/lib/firmware/updates" to default firmware path

dracut-009

  • dracut generator

    • dracut-logger
    • xz compression
    • better argument handling
  • initramfs

    • hooks moved to /lib/dracut/hooks in initramfs
    • rd.driver.{blacklist|pre|post} accept comma separated driver list
    • iSCSI: iSCSI Boot Firmware Table (iBFT) support
    • support for /run
    • live image: support for generic rootfs.img (instead of ext3fs.img)
    • caps module
    • FCoE: EDD support

dracut-008

  • removed --ignore-kernel-modules option (no longer necessary)
  • renamed kernel command line arguments to follow the rd. naming scheme
  • merged check, install, installkernel to module-setup.sh
  • support for bzip2 and xz compressed initramfs images.
  • source code beautification
  • lots of documentation
  • lsinitrd: "catinitrd" functionality
  • dracut: --list-modules
  • lvm: support for dynamic LVM SNAPSHOT root volume
  • 95fstab-sys: mount all /etc/fstab.sys volumes before switch_root
  • 96insmodpost dracut module
  • rd.shell=1 per default
  • rootfs-block:mount-root.sh add fsck
  • busybox shell replacements module
  • honor old "real_init="
  • 97biosdevname dracut module

dracut-007

  • module i18n is no longer fedora/red hat specific (Amadeusz Żołnowski)
  • distribution specific conf file
  • bootchartd support
  • debug module now has fsck
  • use "hardlink", if available, to save some space
  • /etc/dracut.conf can be overwritten by settings in /etc/dracut.conf.d/*.conf
  • gentoo splash module
  • --ignore-kernel-modules option
  • crypto keys on external devices support
  • bugfixes

dracut-006

  • fixed mdraid with IMSM
  • fixed dracut manpages
  • dmraid parse different error messages
  • add cdrom polling mechanism for slow cdroms
  • add module btrfs
  • add btrfsctl scan for btrfs multi-devices (raid)
  • teach dmsquash live-root to use rootflags
  • trigger udev with action=add
  • fixed add_drivers handling
  • add sr_mod
  • use pigz instead of gzip, if available
  • boot from LVM mirrors and snapshots
  • iscsi: add support for multiple netroot=iscsi:
  • Support old version of module-init-tools
  • got rid of rdnetdebug
  • fixed "ip=auto6"
  • dracut.conf: use "+=" as default for config variables
  • bugfixes

dracut-005

  • dcb support to dracut's FCoE support
  • add readonly overlay support for dmsquash
  • add keyboard kernel modules
  • dracut.conf: added add_dracutmodules
  • add /etc/dracut.conf.d
  • add preliminary IPv6 support
  • bugfixes

dracut-004

  • dracut-lib: read multiple lines from $init/etc/cmdline
  • lsinitrd and mkinitrd
  • dmsquash: add support for loopmounted *.iso files
  • lvm: add rd_LVM_LV and "--poll n"
  • user suspend support
  • add additional drivers in host-only mode, too
  • improved emergency shell
  • support for compressed kernel modules
  • support for loading Xen modules
  • rdloaddriver kernel command line parameter
  • man pages for dracut-catimages and dracut-gencmdline
  • bugfixes

dracut-003

  • add debian package modules
  • add dracut.conf manpage
  • add module 90multipath
  • add module 01fips
  • crypt: ignore devices in /etc/crypttab (root is not in there) unless rd_NO_CRYPTTAB is specified
  • kernel-modules: add scsi_dh scsi_dh_rdac scsi_dh_emc
  • add multinic support
  • add s390 zfcp support
  • add s390 dasd support
  • add s390 network support
  • fixed dracut-gencmdline for root=UUID or LABEL
  • do not destroy assembled raid arrays if mdadm.conf present
  • mount /dev/shm
  • let udevd not resolve group and user names
  • moved network from udev to initqueue
  • improved debug output: specifying "rdinitdebug" now logs to dmesg, console and /init.log
  • strip kernel modules which have no x bit set
  • redirect stdin, stdout, stderr all RW to /dev/console so the user can use "less" to view /init.log and dmesg
  • add new device mapper udev rules and dmeventd
  • fixed dracut-gencmdline for root=UUID or LABEL
  • do not destroy assembled raid arrays if mdadm.conf present
  • mount /dev/shm
  • let udevd not resolve group and user names
  • preserve timestamps of tools on initramfs generation
  • generate symlinks for binaries correctly
  • moved network from udev to initqueue
  • mount nfs3 with nfsvers=3 option and retry with nfsvers=2
  • fixed nbd initqueue-finished
  • improved debug output: specifying "rdinitdebug" now logs to dmesg, console and /init.log
  • strip kernel modules which have no x bit set
  • redirect stdin, stdout, stderr all RW to /dev/console so the user can use "less" to view /init.log and dmesg
  • make install of new dm/lvm udev rules optionally
  • add new device mapper udev rules and dmeventd
  • Fix LiveCD boot regression
  • bail out if selinux policy could not be loaded and selinux=0 not specified on kernel command line
  • do not cleanup dmraids
  • copy over lvm.conf

dracut-002

  • add ifname= argument for persistent netdev names
  • new /initqueue-finished to check if the main loop can be left
  • copy mdadm.conf if --mdadmconf set or mdadmconf in dracut.conf
  • plymouth: use plymouth-populate-initrd
  • add add_drivers for dracut and dracut.conf
  • add modprobe scsi_wait_scan to be sure everything was scanned
  • fix for several problems with md raid containers
  • fix for selinux policy loading
  • fix for mdraid for IMSM
  • fix for bug, which prevents installing 61-persistent-storage.rules (bug #520109)
  • fix for missing grep for md

dracut-001

  • better --hostonly checks

  • better lvm/mdraid/dmraid handling

  • fcoe booting support Supported cmdline formats: fcoe=:<dcb|nodcb> fcoe=:<dcb|nodcb>

    Note currently only nodcb is supported, the dcb option is reserved for future use.

    Note letters in the macaddress must be lowercase!

    Examples: fcoe=eth0:nodcb fcoe=4A:3F:4C:04:F8:D7:nodcb

  • Syslog support for dracut This module provides syslog functionality in the initrd. This is especially interesting when complex configuration being used to provide access to the device the rootfs resides on.

dracut-0.9

  • let plymouth attach to the terminal (nice text output now)
  • new kernel command line parameter "rdinfo" show dracut output, even when "quiet" is specified
  • rd_LUKS_UUID is now handled correctly
  • dracut-gencmdline: rd_LUKS_UUID and rd_MD_UUID is now correctly generated
  • now generates initrd-generic with around 15MB
  • smaller bugfixes

dracut-0.8

  • iSCSI with username and password
  • support for live images (dmsquashed live images)
  • iscsi_firmware fixes
  • smaller images
  • bugfixes

dracut-0.7

  • dracut: strip binaries in initramfs

         --strip
                strip binaries in the initramfs (default)
    
         --nostrip
                do not strip binaries in the initramfs
    
  • dracut-catimages

    Usage: ./dracut-catimages [OPTION]... [...] Creates initial ramdisk image by concatenating several images from the command line and /boot/dracut/

    -f, --force           Overwrite existing initramfs file.
    -i, --imagedir        Directory with additional images to add
                          (default: /boot/dracut/)
    -o, --overlaydir      Overlay directory, which contains files that
                          will be used to create an additional image
    --nooverlay           Do not use the overlay directory
    --noimagedir          Do not use the additional image directory
    -h, --help            This message
    --debug               Output debug information of the build process
    -v, --verbose         Verbose output during the build process
    
  • s390 dasd support

dracut-0.6

  • dracut: add --kernel-only and --no-kernel arguments

         --kernel-only
                only install kernel drivers and firmware files
    
         --no-kernel
                do not install kernel drivers and firmware files
    

    All kernel module related install commands moved from "install" to "installkernel".

    For "--kernel-only" all installkernel scripts of the specified modules are used, regardless of any checks, so that all modules which might be needed by any dracut generic image are in.

    The basic idea is to create two images. One image with the kernel modules and one without. So if the kernel changes, you only have to replace one image.

    Grub and the kernel can handle multiple images, so grub entry can look like this:

    title Fedora (2.6.29.5-191.fc11.i586) root (hd0,0) kernel /vmlinuz-2.6.29.5-191.fc11.i586 ro rhgb quiet initrd /initrd-20090722.img /initrd-kernel-2.6.29.5-191.fc11.i586.img /initrd-config.img

    initrd-20090722.img the image provided by the initrd rpm one old backup version is kept like with the kernel

    initrd-kernel-2.6.29.5-191.fc11.i586.img the image provided by the kernel rpm

    initrd-config.img optional image with local configuration files

  • dracut: add --kmoddir directory, where to look for kernel modules

         -k, --kmoddir [DIR]
                specify the directory, where to look for kernel modules
    

dracut-0.5

  • more generic (all plymouth modules, all keyboards, all console fonts)
  • more kernel command line parameters (see also man dracut(8))
  • a helper tool, which generates the kernel command line (dracut-gencmdline)
  • bridged network boot
  • a lot of new command line parameter

dracut-0.4

  • bugfixes

  • firmware loading support

  • new internal queue (initqueue) initqueue now loops until /dev/root exists or root is mounted

    init now has the following points to inject scripts:

    /cmdline/*.sh scripts for command line parsing

    /pre-udev/*.sh scripts to run before udev is started

    /pre-trigger/*.sh scripts to run before the main udev trigger is pulled

    /initqueue/*.sh runs in parallel to the udev trigger Udev events can add scripts here with /sbin/initqueue. If /sbin/initqueue is called with the "--onetime" option, the script will be removed after it was run. If /initqueue/work is created and udev >= 143 then this loop can process the jobs in parallel to the udevtrigger. If the udev queue is empty and no root device is found or no root filesystem was mounted, the user will be dropped to a shell after a timeout. Scripts can remove themselves from the initqueue by "rm $job".

    /pre-mount/*.sh scripts to run before the root filesystem is mounted NFS is an exception, because it has no device node to be created and mounts in the udev events

    /mount/*.sh scripts to mount the root filesystem NFS is an exception, because it has no device node to be created and mounts in the udev events If the udev queue is empty and no root device is found or no root filesystem was mounted, the user will be dropped to a shell after a timeout.

    /pre-pivot/*.sh scripts to run before the real init is executed and the initramfs disappears All processes started before should be killed here.

    The behaviour of the dmraid module demonstrates how to use the new mechanism. If it detects a device which is part of a raidmember from a udev rule, it installs a job to scan for dmraid devices, if the udev queue is empty. After a scan, it removes itsself from the queue.

dracut-0.3

  • first public version