initrd (initialisation RAM disk)
What is initrd?
initrd (initialisation RAM disk) is essentially a set of instructions used to load the kernel. initrd is stored temporarily in system memory whilst the kernel is loaded.
initrd is a temporary filesystem image that's loaded into memory during the linux boot process, the filesystem contains any drivers, modules, or configuration that are required in order to mount the root fs.
Where are initrd files stored?
/boot
The initrd file will be prefaced with just that - initrd:
initrd.img-5.15.0-106-generic
To check which initrd file is currently being treated as the primary one (which will be loaded on boot), you can check the symlinks (in /boot), as below:
initrd.img -> initrd.img-5.15.0-107-generic
initrd.img.old -> initrd.img-5.15.0-106-generic
Creating an initrd file (mkinitrd)
mkinitrd is a command used for creating or modifying an initrd. mkinitrd is typically used on much older systems. Modern systems have tools in place to automatically detect the modules required for the ram disk.
mkinitrd [options] initrdimagename kernel.version
mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)
| Option | Function |
| --preload=modulename | Load a module in the initrd image before the loading of other modules. |
| --with=modulename | Load a module in the initrd image after the loading of other modules. |
| -f | Overwrite an existing initrd image file. |
| -nocompress | Disable the compression of the initrd image. |