=== Adding Kernel Modules
If you need a special kernel module in the initramfs, which is not
automatically picked up by dracut, you have the use the --add-drivers option
-on the command line or the drivers vaiable in the _/etc/dracut.conf_
+on the command line or the drivers variable in the _/etc/dracut.conf_
or _/etc/dracut.conf.d/myconf.conf_ configuration file (see *dracut.conf*(5)):
----
# dracut --add-drivers mymod initramfs-with-mymod.img
configuration files (except for some special exceptions), so the configuration
has to be done on the kernel command line. With this flexibility, you can easily
boot from a changed root partition, without the need to recompile the initramfs
-image. So, you could completly change your root partition (move it inside a md
+image. So, you could completely change your root partition (move it inside a md
raid with encryption and LVM on top), as long as you specify the correct
filesystem LABEL or UUID on the kernel command line for your root device, dracut
will find it and boot from it.
-The kernel command line usually can be configured in _/boot/grub/grub.conf_, if
-grub is your bootloader and it also can be edited in the real boot process in
-the grub menu.
-
The kernel command line can also be provided by the dhcp server with the
root-path option. See <<NetworkBoot>>.
crypto LUKS.
Of course, you could also omit the dracut modules in the initramfs creation
-process, but then you would lose the posibility to turn it on on demand.
+process, but then you would lose the possibility to turn it on on demand.
[[Injecting]]
----
# mkdir -p rd.live.overlay/etc/cmdline.d
# mkdir -p rd.live.overlay/etc/conf.d
-# echo "ip=auto" >> rd.live.overlay/etc/cmdline.d/mycmdline.conf
+# echo "ip=dhcp" >> rd.live.overlay/etc/cmdline.d/mycmdline.conf
# echo export FOO=testtest >> rd.live.overlay/etc/conf.d/testvar.conf
# echo export BAR=testtest >> rd.live.overlay/etc/conf.d/testvar.conf
# tree rd.live.overlay/
If your root partition is on a network drive, you have to have the network
dracut modules installed to create a network aware initramfs image.
-On a Red Hat Enterprise Linux or Fedora system, this means, you have to install
-the _dracut-network_ rpm package:
-
-
-----
-# yum install dracut-network
-----
-
-The resulting initramfs image can be served by a boot manager residing on your
-local hard drive or it can be served by a PXE/TFTP server.
-
-How to setup your PXE/TFTP server can be found in the
-http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/[Red
-Hat Enterprise Linux Storage Administration Guide].
-
-If you specify ip=auto on the kernel command line, then dracut asks a dhcp
-server about the ip adress for the machine. The dhcp server can also serve an
+If you specify ip=dhcp on the kernel command line, then dracut asks a dhcp
+server about the ip address for the machine. The dhcp server can also serve an
additional root-path, which will set the root device for dracut. With this
mechanism, you have static configuration on your client machine and a
centralized boot configuration on your TFTP/DHCP server. If you can't pass a
==== Reducing the Image Size
-To reduce the size of the initramfs, you should create it with by ommitting all
+To reduce the size of the initramfs, you should create it with by omitting all
dracut modules, which you know, you don't need to boot the machine.
You can also specify the exact dracut and kernel modules to produce a very tiny
If the boot process does not succeed, you have several options to debug the
situation. Some of the basic operations are covered here. For more information
you should also visit:
-http://fedoraproject.org/wiki/How_to_debug_Dracut_problems
+https://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html
[[identifying-your-problem-area]]
In all cases, the following should be mentioned and attached to your bug report:
* The exact kernel command-line used. Typically from the bootloader
-configuration file (e.g. _/etc/grub.conf_) or from _/proc/cmdline_.
+configuration file (e.g. _/boot/grub2/grub.cfg_) or from _/proc/cmdline_.
* A copy of your disk partition information from _/etc/fstab_, which might be
obtained booting an old working initramfs or a rescue medium.
* Turn on dracut debugging (see _the 'debugging dracut' section_), and attach
serial console connection to record boot messages.
. First, enable serial console output for both the kernel and the bootloader.
-. Open the file _/etc/grub.conf_ for editing. Below the line ''timeout=5'', add
+. Open the file _/boot/grub2/grub.cfg_ for editing. Below the line ''timeout=5'', add
the following:
+
----
terminal --timeout=5 serial console
----
+
-. Also in _/etc/grub.conf_, add the following boot arguemnts to the ''kernel''
+. Also in _/boot/grub2/grub.cfg_, add the following boot arguemnts to the ''kernel''
line:
+
----
console=tty0 console=ttyS0,9600
----
+
-. When finished, the _/etc/grub.conf_ file should look similar to the example
+. When finished, the _/boot/grub2/grub.cfg_ file should look similar to the example
below.
+
----
locate your root filesystem. To enable the shell:
. Add the boot parameter ''rd.shell'' to your bootloader configuration file
-(e.g. _/etc/grub.conf_)
+(e.g. _/boot/grub2/grub.cfg_)
. Remove the boot arguments ''rhgb'' and ''quiet''
+
-A sample _/etc/grub.conf_ bootloader configuration file is listed below.
+A sample _/boot/grub2/grub.cfg_ bootloader configuration file is listed below.
+
----
default=0
To do this from an already booted system:
----
# mkdir -p /run/initramfs/etc/cmdline.d
-# echo "rd.break=pre-shutdown" > /run/initramfs/etc/cmdline.d/debug.conf
+# echo "rd.debug rd.break=pre-shutdown rd.break=shutdown" > /run/initramfs/etc/cmdline.d/debug.conf
# touch /run/initramfs/.need_shutdown
----