ramdisks, initrd, ramfs, and initramfs
Linux booting with Early Userspace
In the simplest of Linux installations, finding and mounting the root filesystem device is an easy task that the kernel can accomplish with only a little guidance from the bootloader. This filesystem will be stored on an ordinary disk partition that can be detected as soon as disk controllers are initialized, with no intermediate layers such as LVM, RAID, or encryption. The kernel reads the location of this filesystem from a command line option like root=/dev/sda3, mounts it, and starts the /sbin/init process as PID 1, and the system continues booting from userspace.
But what about other scenarios? In modern systems, the root filesystem may be located on a software RAID volume for data redundancy, encrypted for extra security, on a device that requires a special driver to be loaded, or accessed over the network. In these cases, the root= option isn't enough; extra code needs to be run to mount the root filesystem and boot the rest of the system. This can be done either with a traditional initrd (initial ramdisk) or the newer initramfs method.
Booting with initrd