dracut (software)

Dracut is a set of tools that provide enhanced functionality for automating the Linux boot process. The tool named dracut is used to create a Linux boot image (initramfs) by copying tools and files from an installed system and combining it with the Dracut framework, which is usually found in /usr/lib/dracut/modules.d.

Dracut
Original author(s)Harald Hoyer and others
Initial releaseJuly 2009 (2009-07)
Stable release
050 / 3 April 2020 (2020-04-03)
Repository
Written inC, Unix shell
Operating systemLinux
PlatformLinux kernel
Typeinitramfs
LicenseGPLv2+, LGPLv2+
Websitedracut.wiki.kernel.org

Unlike existing Linux boot images, the Dracut framework attempts to introduce as little hard-coded logic into the initramfs as possible.[1] The initramfs has essentially one purpose: locating and mounting the real root file system so that the boot process can transition to it.[1] This functionality is dependent on device availability.[1] Therefore, instead of having hard-coded scripts to determine device availability and suitability, Dracut's initramfs depends on the Linux device manager (udev) to create symbolic links to device nodes. When the root file system's device node appears, Dracut mounts it as the new root file system. This helps to keep the time required in initramfs down so that things like a 5-second boot are now made possible.[1]

Most of the initramfs generation functionality in Dracut is provided by generator modules that are sourced by the main dracut tool to install specific functionality into the initramfs.[1] They live in the modules subdirectory, and use functionality provided by dracut-functions to do their work.[1]

Currently, dracut supports booting from btrfs, DM RAID, MD RAID, LVM2, device mapper multipath I/O, dm-crypt, cifs, FCoE, iSCSI, NBD and NFS.[2]

Adoption

Redhat is the original author of dracut. Redhat-derived distributions use dracut for initramfs creation. Use outside Redhat-derived distributions is limited.

Distributions which include dracut, but do not use by default for initramfs creation:

gollark: I'm going for fuzzy search; I managed to write very simple F# bindings for a JS library for it, and it seems relatively simple to implement.
gollark: Should I bother with fuzzy search or just do (the equivalent of) string.find?
gollark: You can just write this one line shellscript:`./summarise.py | ./discord.py`
gollark: It's a different thing, though.
gollark: If manually run, it will select a bunch of RSS feed items and send them to stdout, and they can then be fed to my CLI webhook script.

See also

References

  1. dracut Wiki, kernel.org, retrieved 2012-10-10
  2. dracut documentation, kernel.org, retrieved 2012-10-10
  3. Features/Dracut, FedoraProject, retrieved 2012-10-10
  4. RHEL6 SRPMS FTP, redhat.com, retrieved 2012-10-10
  5. openSUSE 13.2 Major features, openSUSE project, retrieved 2014-11-04
  6. Dracut - Gentoo Wiki, wiki.gentoo.org, retrieved 2012-10-10
  7. Package: dracut (005-1), debian.org, retrieved 2012-10-10
  8. dracut-010-6-mdv2011.0.noarch.rpm, pkgs.org, retrieved 2012-10-10
  9. Kernel
  10. Mageia App Db, mageia.madb.org, retrieved 2012-10-10
  11. "Arch Linux - dracut 049-2 (x86_64)". www.archlinux.org. Retrieved 2019-05-21.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.