Product SiteDocumentation Site

20.5. Verifying the Initial RAM Disk Image

The job of the initial RAM disk image is to preload the block device modules, such as for IDE, SCSI or RAID, so that the root file system, on which those modules normally reside, can then be accessed and mounted. On Fedora 20 systems, whenever a new kernel is installed using either the Yum, PackageKit, or RPM package manager, the Dracut utility is always called by the installation scripts to create an initramfs (initial RAM disk image).
On all architectures other than IBM eServer System i (see Section 20.5, “ Verifying the Initial RAM Disk Image and Kernel on IBM eServer System i ”), you can create an initramfs by running the dracut command. However, you usually don't need to create an initramfs manually: this step is automatically performed if the kernel and its associated packages are installed or upgraded from RPM packages distributed by The Fedora Project.
On architectures that use the GRUB 2 boot loader, you can verify that an initramfs corresponding to your current kernel version exists and is specified correctly in the /boot/grub2/grub.cfg configuration file by following this procedure:

Procedure 20.1. Verifying the Initial RAM Disk Image

  1. As root, list the contents in the /boot directory and find the kernel (vmlinuz-kernel_version) and initramfs-kernel_version with the latest (most recent) version number:
    ~]# ls /boot
    config-3.1.0-0.rc6.git0.3.fc16.x86_64
    config-3.1.0-0.rc9.git0.0.fc16.x86_64
    elf-memtest86+-4.20
    grub
    grub2
    initramfs-3.1.0-0.rc6.git0.3.fc16.x86_64.img
    initramfs-3.1.0-0.rc9.git0.0.fc16.x86_64.img
    initrd-plymouth.img
    memtest86+-4.20
    System.map-3.1.0-0.rc6.git0.3.fc16.x86_64
    System.map-3.1.0-0.rc9.git0.0.fc16.x86_64
    vmlinuz-3.1.0-0.rc6.git0.3.fc16.x86_64
    vmlinuz-3.1.0-0.rc9.git0.0.fc16.x86_64
    The example above shows that:
    • we have two kernels installed (or, more correctly, two kernel files are present in the /boot directory),
    • the latest kernel is vmlinuz-vmlinuz-3.1.0-0.rc9.git0.0.fc16.x86_64, and
    • an initramfs file matching our kernel version, initramfs-3.1.0-0.rc9.git0.0.fc16.x86_64.img, also exists.

    initrd files in the /boot directory are not the same as initramfs files

    In the /boot directory you may find several initrd-<kernel_version>kdump.img files. These are special files created by the kdump mechanism for kernel debugging purposes, are not used to boot the system, and can safely be ignored. For more information on kdump, refer to Chapter 22, The kdump Crash Recovery Service.
  2. (Optional) If your initramfs-kernel_version file does not match the version of the latest kernel in /boot, or, in certain other situations, you may need to generate an initramfs file with the Dracut utility. Simply invoking dracut as root without options causes it to generate an initramfs file in the /boot directory for the latest kernel present in that directory:
    ~]# dracut
    You must use the --force option if you want dracut to overwrite an existing initramfs (for example, if your initramfs has become corrupt). Otherwise dracut will refuse to overwrite the existing initramfs file:
    ~]# dracut
    F: Will not override existing initramfs (/boot/initramfs-3.1.0-0.rc9.git0.0.fc16.x86_64.img) without --force
    You can create an initramfs in the current directory by calling dracut initramfs_name kernel_version, for example:
    ~]# dracut "initramfs-$(uname -r).img" $(uname -r)
    If you need to specify specific kernel modules to be preloaded, add the names of those modules (minus any file name suffixes such as .ko) inside the parentheses of the add_dracutmodules="module [more_modules]" directive of the /etc/dracut.conf configuration file. You can list the file contents of an initramfs image file created by dracut by using the lsinitrd initramfs_file command:
    ~]# lsinitrd /boot/initramfs-3.1.0-0.rc9.git0.0.fc16.x86_64.img
    /boot/initramfs-3.1.0-0.rc9.git0.0.fc16.x86_64.img: 16M
    ========================================================================
    dracut-013-15.fc16
    ========================================================================
    drwxr-xr-x   8 root     root     0 Oct 11 20:36 .
    lrwxrwxrwx   1 root     root    17 Oct 11 20:36 lib -> run/initramfs/lib
    drwxr-xr-x   2 root     root     0 Oct 11 20:36 sys
    drwxr-xr-x   2 root     root     0 Oct 11 20:36 proc
    lrwxrwxrwx   1 root     root    17 Oct 11 20:36 etc -> run/initramfs/etc
    [output truncated]
    See man dracut and man dracut.conf for more information on options and usage.
  3. Examine the /boot/grub2/grub.cfg configuration file to ensure that an initrd /path/initramfs-kernel_version.img exists for the kernel version you are booting. For example:
    ~]# grep initrd /boot/grub2/grub.cfg
            initrd /initramfs-3.1.0-0.rc6.git0.3.fc16.x86_64.img
            initrd /initramfs-3.1.0-0.rc9.git0.0.fc16.x86_64.img
    See Section 20.6, “Verifying the Boot Loader” for more information on how to read and update the /boot/grub2/grub.cfg file.

Verifying the Initial RAM Disk Image and Kernel on IBM eServer System i

On IBM eServer System i machines, the initial RAM disk and kernel files are combined into a single file, which is created with the addRamDisk command. This step is performed automatically if the kernel and its associated packages are installed or upgraded from the RPM packages distributed by The Fedora Project; thus, it does not need to be executed manually. To verify that it was created, run the following command as root to make sure the /boot/vmlinitrd-kernel_version file already exists:
ls -l /boot
The kernel_version should match the version of the kernel just installed.