The initramfs is the initial root partition.
> Seems like overkill to boot most systems.
>
> As I understand it, all that should need to go into the initramfs is
> enough to mount the root partition. Normally, this would probably be
> a handful of drivers that are unconditionally known to be needed. So
> why go through several user-mode programs to make a decision that can
> be made once and built in?
But how do you always know what is "needed"? Wouldn't it be nice to
just select "compile all SCSI PCI and IEEE1394 and USB drivers as
modules" and then have your "real" root partition's controller be
automatically found before you try to mount your "real" root partition?
Say your SCSI PCI controller dies, and you buy a new one. Plop it in,
reboot, and everything works. No having to build a new initrd, or build
in _all possible_ SCSI PCI drivers.
Right now you can't have your "real" root partition on a USB drive,
without a horrible "let's wait forever" patch to your kernel.
This also solves the "coldplug" problem, where you need to load
pci/usb/foobus drivers _after_ init has started. To do this you need to
rely on scanning the busses from userspace and loading the needed
drivers. Why reimplement this scanning logic, as the kernel already did
all of this (and usually did a much better job at it) during the boot
process before init started.
And this allows lots of horrible "boot over NFS" and other network
code/hacks in the kernel to be moved out of kernel space, and into
userspace, where it really belongs.
thanks,
greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/