Load Linux kernel module before SCSI module using mkinitrd

Today I have discovered nifty mkinitrd command option 🙂

ADVERTISEMENTS

mkinitrd command is use to make an initrd image. According to man page:
The mkinitrd script constructs a directory structure that can serve as an initrd root file system. It then generates an image containing that directory structure using mkcramfs(8), which can be loaded using the initrd mechanism. The kernel modules for the specified kernel version will be placed in the directory structure. If version is omitted, it defaults to the version of the kernel that is currently running.

So mkinitrd creates an initial image used by the kernel for preloading the block device modules such as IDE, SCSI RAID etc. These modules are needed when system need to access the root filesystem.

If you have new SCSI card you need to make sure that a particular kernel module will be loaded by my initial ramdisk. Pass –preload option to mkinitrd to load the `module’ module in the initial ramdisk image. The module gets loaded before any SCSI modules which are specified in /etc/modprobe.conf. This is quite good if you need any module before SCSI module.
# mkinitrd --preload=module-name /boot/initrd-2.6.9-42.ELsmp.img 2.6.9-42.ELsmp

Replace module-name with actual module name.

For more information read mkinitrd man page:

  • man mkinitrd
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source & DevOps topics via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNCentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
1 comment… add one
  • Pinny Jan 20, 2008 @ 20:33

    I have same problem: I’ve installed FC7 on a machine with SATA disk. I’ve copy this machine (with ghost) to a machine with scsi disk. Now the machine boots but cannot find the scsi module during init. I’ve run mkinit with
    –preload=mptspi but It looks that this module isnt loading during the init process. What am I doing wrong? Thanks for the advice!

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.