7. How To Boot Without A Disk Device Driver
For most systems, the ATA disk device driver must be bound into the
base kernel because the root filesystem is on an ATA disk
and the kernel cannot mount the
root filesystem, much less read any LKMs from it, without the ATA disk
driver. But if you really want the device driver for your root
filesystem to be an LKM, here's how to do it with Initrd:
"Initrd" is the name of the "initial ramdisk" feature of Linux. With
this, you have your loader (probably LILO or Grub) load a filesystem into
memory (as a ramdisk) before starting the kernel. When it starts the
kernel, it tells it to mount the ramdisk as the root filesystem. You
put the disk device driver for your real root filesystem and all the
software you need to load it in that ramdisk filesystem. Your startup
programs (which live in the ramdisk) eventually mount the real (disk)
filesystem as the root filesystem. Note that a ramdisk doesn't
require any device driver.
This does not free you, however, from having to bind into the base
kernel 1) the filesystem driver for the filesystem in your ramdisk,
and 2) the executable interpreter for the programs in the ramdisk.