The first moment when your system boots, it needs modules. These are the modules necessary to load the root device on your server, including the drivers that are required to get access to your storage devices. These modules are loaded by the initial RAM drive (initrd), which is loaded from GRUB. Ordinarily, this initial RAM drive is created automatically, and you don't have to worry about it. Sometimes you may need to tune your own initrd, in which case you can use the mkinitrd command.
When mkinitrd is called, it looks at the configuration file /etc/sysconfig/kernel that contains two variables relevant for creating an initrd. The first of these variables is INITRD_MODULES. This variable lists the modules that need to be added to the initrd when invoking mkinitrd. Depending on the way your system is configured, you can define the variable as INITRD_MODULES="piix processor thermal fan jbd ext3".Make sure that, at the least, this parameter contains a list of all modules needed to initialize storage on your server.
Apart from the variable INITRD_MODULES, you can also use the variable DOMU_INITRD_MODULES. This variable is required if you are using a Xen kernel, and it makes sure the drivers for the Xen virtual block and network devices are initialized at an early stage.
Was this article helpful?