+++ /dev/null
-Most of the functionality that dracut implements are actually implemented
-by dracut modules. Dracut modules live in modules.d, and have the following
-structure:
-
-dracut_install_dir/modules.d/
- 00modname/
- install
- check
- <other files as needed by the hook>
-
-00modname: The name of the module prefixed by a two-digit numeric sort code.
- The numeric code must be present and in the range of 00 - 99.
- Modules with lower numbers are installed first. This is important
- because the dracut install functions (which install files onto
- the initrd) refuse to overwrite already installed files. This makes
- it easy for an earlier module to override the functionality of a
- later module, so that you can have a distro or system specific
- module override or modify the functionality of a generic module
- without having to patch the mode generic module.
-
-install: dracut sources this script to install the functionality that a
- module implements onto the initrd. For the most part, this amounts
- to copying files from the host system onto the initrd in a controlled
- manner. dracut supplies several install functions that are
- specialized for different file types. Browse through dracut-functions
- fore more details. dracut also provides a $moddir variable if you
- need to install a file from the module directory, such as an initrd
- hook, a udev rule, or a specialized executable.
-
-check: Dracut calls this program to check and see if a module can be installed
- on the initrd.
-
- When called without options, check should check to make sure that
- any files it needs to install into the initrd from the host system
- are present. It should exit with a 0 if they are, and a 1 if they are
- not.
-
- When called with -H, it should perform the same check that it would
- without any options, and it should also check to see if the
- functionality the module implements is being used on the host system.
- For example, if this module handles installing support for LUKS
- encrypted volumes, it should return 0 if all the tools to handle
- encrpted volumes are available and the host system has the root
- partition on an encrypted volume, 1 otherwise.
-
- Check may take additional options in the future.
- We will most likely grow a module dependency checking system in the
- near future, and check will need to handle a -d option when we do.
-
-Any other files in the module will not be touched by dracut directly.
-
-You are encouraged to provide a README that descrobes what the module is for.