NAME
----
-dracut - low-level tool for generating an initramfs image
+dracut - low-level tool for generating an initramfs/initrd image
SYNOPSIS
--------
-*dracut* ['OPTION...'] [<image> [_<kernel version>_]]
+*dracut* [__OPTION...__] [__<image>__ [__<kernel version>__]]
DESCRIPTION
-----------
as initial root file system. All finding of the root device happens in this
early userspace.
+Initramfs images are also called "initrd".
+
For a complete list of kernel command line options see *dracut.cmdline*(7).
If you are dropped to an emergency shell, while booting your initramfs,
-the file _/run/initramfs/sosreport.txt_ is created, which can be safed to a
+the file _/run/initramfs/rdsosreport.txt_ is created, which can be saved to a
(to be mounted by hand) partition (usually /boot) or a USB stick.
-Additional debugging info can be produced by adding **rd.debug** to the kernel command line.
-_/run/initramfs/sosreport.txt_ contains all logs and the output of some tools.
-It should be attached to any report about dracut problems.
-
-EXAMPLE
--------
-
-To create a initramfs image, the most simple command is:
-----
-# dracut
-----
-
-This will generate a general purpose initramfs image, with all possible
-functionality resulting of the combination of the installed dracut modules and
-system tools. The image is /boot/initramfs-_++<kernel version>++_.img and
-contains the kernel modules of the currently active kernel with version
-_++<kernel version>++_.
-
-If the initramfs image already exists, dracut will display an error message, and
-to overwrite the existing image, you have to use the --force option.
-----
-# dracut --force
-----
-
-If you want to specify another filename for the resulting image you would issue
-a command like:
-----
-# dracut foobar.img
-----
-
-To generate an image for a specific kernel version, the command would be:
-----
-# dracut foobar.img 2.6.40-1.rc5.f20
-----
+Additional debugging info can be produced by adding **rd.debug** to the kernel
+command line. _/run/initramfs/rdsosreport.txt_ contains all logs and the output
+of some tools. It should be attached to any report about dracut problems.
-A shortcut to generate the image at the default location for a specific kernel
-version is:
-----
-# dracut --kver 2.6.40-1.rc5.f20
-----
-
-If you want to create lighter, smaller initramfs images, you may want to specify
-the --host-only or -H option. Using this option, the resulting image will
-contain only those dracut modules, kernel modules and filesystems, which are
-needed to boot this specific machine. This has the drawback, that you can't put
-the disk on another controller or machine, and that you can't switch to another
-root filesystem, without recreating the initramfs image. The usage of the
---host-only option is only for experts and you will have to keep the broken
-pieces. At least keep a copy of a general purpose image (and corresponding
-kernel) as a fallback to rescue your system.
+USAGE
+-----
+include::dracut.usage.asc[]
OPTIONS
-------
**-f, --force**::
overwrite existing initramfs file.
-**-m, --modules** _<list of dracut modules>_::
- specify a space-separated list of dracut modules to call when building the
- initramfs. Modules are located in _/usr/lib/dracut/modules.d_. This
- parameter can be specified multiple times.
+**-a, --add** _<list of dracut modules>_::
+ add a space-separated list of dracut modules to the default set of modules.
+ This parameter can be specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
-# dracut --modules "module1 module2" ...
+# dracut --add "module1 module2" ...
----
===============================
-**-o, --omit** _<list of dracut modules>_::
- omit a space-separated list of dracut modules. This parameter can be
- specified multiple times.
+**--force-add** _<list of dracut modules>_::
+ force to add a space-separated list of dracut modules to the default set of
+ modules, when -H is specified. This parameter can be specified multiple
+ times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
-# dracut --omit "module1 module2" ...
+# dracut --force-add "module1 module2" ...
----
===============================
-**-a, --add** _<list of dracut modules>_::
- add a space-separated list of dracut modules to the default set of modules.
- This parameter can be specified multiple times.
+**-o, --omit** _<list of dracut modules>_::
+ omit a space-separated list of dracut modules. This parameter can be
+ specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
-# dracut --add "module1 module2" ...
+# dracut --omit "module1 module2" ...
----
===============================
-**--force-add** _<list of dracut modules>_::
- force to add a space-separated list of dracut modules to the default set of
- modules, when -H is specified. This parameter can be specified multiple
- times.
+**-m, --modules** _<list of dracut modules>_::
+ specify a space-separated list of dracut modules to call when building the
+ initramfs. Modules are located in _/usr/lib/dracut/modules.d_. This
+ parameter can be specified multiple times.
+ This option forces dracut to only include the specified dracut modules.
+ In most cases the "--add" option is what you want to use.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
-# dracut --force-add "module1 module2" ...
+# dracut --modules "module1 module2" ...
----
===============================
----
===============================
+**--force-drivers** _<list of kernel modules>_::
+ See add-drivers above. But in this case it is ensured that the drivers
+ are tried to be loaded early via modprobe.
++
+[NOTE]
+===============================
+If [LIST] has multiple arguments, then you have to put these in quotes. For
+example:
+----
+# dracut --force-drivers "kmodule1 kmodule2" ...
+----
+===============================
+
**--omit-drivers** _<list of kernel modules>_::
specify a space-separated list of kernel modules not to add to the
initramfs.
**--no-kernel**::
do not install kernel drivers and firmware files
+**--early-microcode**::
+ Combine early microcode with ramdisk
+
+**--no-early-microcode**::
+ Do not combine early microcode with ramdisk
+
+**--print-cmdline**::
+ print the kernel command line for the current disk layout
+
**--mdadmconf**::
include local _/etc/mdadm.conf_
**--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module.
+**--logfile** _<logfile>_:: logfile to use; overrides any setting from
+ the configuration files.
++
+Default:
+ _/var/log/dracut.log_
+
**-l, --local**::
activates the local mode. dracut will use modules from the current working
directory instead of the system-wide installed modules in
**-N, --no-hostonly**::
Disable Host-Only mode
+**--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
+
+**--no-hostonly-default-device**:
+ Do not generate implicit host devices like root, swap, fstab, etc.
+ Use "--mount" or "--add-device" to explicitly add devices as needed.
+
+**--hostonly-i18n**:
+ Install only needed keyboard and font files according to the host configuration (default).
+
+**--no-hostonly-i18n**:
+ Install all keyboard and font files available.
+
+**--persistent-policy** _<policy>_::
+ Use _<policy>_ to address disks and partitions.
+ _<policy>_ can be any directory name found in /dev/disk.
+ E.g. "by-uuid", "by-label"
+
**--fstab**::
Use _/etc/fstab_ instead of _/proc/self/mountinfo_.
-**--add-fstab** _<filename>_ ::
+**--add-fstab** _<filename>_::
Add entries of _<filename>_ to the initramfs /etc/fstab.
-**--mount** "_<device>_ _<mountpoint>_ _<filesystem type>_ _<filesystem options>_"::
- Mount _<device>_ on _<mountpoint>_ with _<filesystem type>_ and _<filesystem
- options>_ in the initramfs
-
-**--device** _<device>_ ::
- Bring up _<device>_ in initramfs, _<device>_ should be the device name
-
-**-i, --include** _<SOURCE>_ _<TARGET>_::
+**--mount** "_<device>_ _<mountpoint>_ _<filesystem type>_ [_<filesystem options>_ [_<dump frequency>_ [_<fsck order>_]]]"::
+ Mount _<device>_ on _<mountpoint>_ with _<filesystem type>_ in the
+ initramfs. _<filesystem options>_, _<dump options>_ and _<fsck order>_ can
+ be specified, see fstab manpage for the details.
+ The default _<filesystem options>_ is "defaults".
+ The default _<dump frequency>_ is "0".
+ the default _<fsck order>_ is "2".
+
+**--mount** "_<mountpoint>_"::
+ Like above, but _<device>_, _<filesystem type>_ and _<filesystem options>_
+ are determined by looking at the current mounts.
+
+**--add-device** _<device>_ ::
+ Bring up _<device>_ in initramfs, _<device>_ should be the device name.
+ This can be useful in hostonly mode for resume support when your swap is on
+ LVM or an encrypted partition.
+ [NB --device can be used for compatibility with earlier releases]
+
+**-i, --include** _<SOURCE>_ _<TARGET>_::
include the files in the SOURCE directory into the
TARGET directory in the final initramfs. If SOURCE is a file, it will be
installed to TARGET in the final initramfs. This parameter can be specified
multiple times.
-**-I, --install** _<file list>_::
+**-I, --install** _<file list>_::
install the space separated list of files into the initramfs.
+
[NOTE]
----
===============================
+**--install-optional** _<file list>_::
+ install the space separated list of files into the initramfs, if they exist.
+
**--gzip**::
Compress the generated initramfs using gzip. This will be done by default,
unless another compression option or --no-compress is passed. Equivalent to
[WARNING]
====
Make sure your kernel has lzma decompression support compiled in, otherwise you
-will not be able to boot. Equivalent to "--compress=lzma -9"
+will not be able to boot. Equivalent to "lzma --compress=lzma -9"
====
**--xz**::
[WARNING]
====
Make sure your kernel has xz decompression support compiled in, otherwise you
-will not be able to boot. Equivalent to "--compress=xz --check=crc32
---lzma2=dict=1MiB"
+will not be able to boot. Equivalent to
+"lzma --compress=xz --check=crc32 --lzma2=dict=1MiB"
+====
+
+**--lzo**::
+ Compress the generated initramfs using lzop.
+[WARNING]
+====
+Make sure your kernel has lzo decompression support compiled in, otherwise you
+will not be able to boot.
+====
+
+**--lz4**::
+ Compress the generated initramfs using lz4.
+[WARNING]
+====
+Make sure your kernel has lz4 decompression support compiled in, otherwise you
+will not be able to boot.
+====
+
+**--zstd**::
+ Compress the generated initramfs using Zstandard.
+[WARNING]
+====
+Make sure your kernel has zstd decompression support compiled in, otherwise you
+will not be able to boot.
====
**--compress** _<compressor>_::
program with known-working arguments. If you pass a quoted string with
arguments, it will be called with exactly those arguments. Depending on what
you pass, this may result in an initramfs that the kernel cannot decompress.
+ The default value can also be set via the _INITRD_COMPRESS_ environment variable.
**--no-compress**::
Do not compress the generated initramfs. This will override any other
compression options.
+**--reproducible**::
+ Create reproducible images.
+
+**--no-reproducible**::
+ Do not create reproducible images.
+
**--list-modules**::
List all available dracut modules.
**--keep**::
Keep the initramfs temporary directory for debugging purposes.
+**--printsize**::
+ Print out the module install size
+
+**--profile**:
+ Output profile information of the build process
+
+**--ro-mnt**:
+ Mount / and /usr read-only by default.
+
+**-L, --stdlog** _<level>_::
+ [0-6] Specify logging level (to standard error)
+----
+ 0 - suppress any messages
+ 1 - only fatal errors
+ 2 - all errors
+ 3 - warnings
+ 4 - info
+ 5 - debug info (here starts lots of output)
+ 6 - trace info (and even more)
+----
+
+**--regenerate-all**::
+ Regenerate all initramfs images at the default location with the kernel
+ versions found on the system. Additional parameters are passed through.
+
+**--loginstall _<DIR>_**::
+ Log all files installed from the host to _<DIR>_.
+
+**--uefi**::
+ Instead of creating an initramfs image, dracut will create an UEFI executable,
+ which can be executed by an UEFI BIOS. The default output filename is
+ _<EFI>/EFI/Linux/linux-$kernel$-<MACHINE_ID>-<BUILD_ID>.efi_. <EFI> might be
+ _/efi_, _/boot_ or _/boot/efi_ depending on where the ESP partition is mounted.
+ The <BUILD_ID> is taken from BUILD_ID in _/usr/lib/os-release_ or if it exists
+ _/etc/os-release_ and is left out, if BUILD_ID is non-existant or empty.
+
+**--no-machineid**::
+ affects the default output filename of **--uefi** and will discard the <MACHINE_ID>
+ part.
+
+**--uefi-stub _<FILE>_**::
+ Specifies the UEFI stub loader, which will load the attached kernel, initramfs and
+ kernel command line and boots the kernel. The default is
+ _$prefix/lib/systemd/boot/efi/linux<EFI-MACHINE-TYPE-NAME>.efi.stub_
+ or _$prefix/lib/gummiboot/linux<EFI-MACHINE-TYPE-NAME>.efi.stub_
+
+**--kernel-image _<FILE>_**::
+ Specifies the kernel image, which to include in the UEFI executable. The default is
+ _/lib/modules/<KERNEL-VERSION>/vmlinuz_ or _/boot/vmlinuz-<KERNEL-VERSION>_
+
+ENVIRONMENT
+-----------
+
+_INITRD_COMPRESS_::
+ sets the default compression program. See **--compress**.
+
FILES
-----
_/var/log/dracut.log_::
_/etc/dracut.conf.d/*.conf_::
see dracut.conf5
+_/usr/lib/dracut/dracut.conf.d/*.conf_::
+ see dracut.conf5
+
Configuration in the initramfs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_/etc/conf.d/_::
set in the configuration files.
_/etc/cmdline_::
- Can contain additional command line options. Deprecated, better use /etc/cmdline.d/*.conf.
+ Can contain additional command line options. Deprecated, better use
+ /etc/cmdline.d/*.conf.
-_/etc/cmdline.d/*.conf::
+_/etc/cmdline.d/*.conf_::
Can contain additional command line options.
AVAILABILITY
SEE ALSO
--------
-*dracut.cmdline*(7) *dracut.conf*(5)
+*dracut.cmdline*(7) *dracut.conf*(5) *lsinitrd*(1)