Chris Jenks said: > On Fri, 28 May 2004, Ken Bloom wrote: > >> The most common cause of this problem is when your root filesystem >> isn't compiled into the kernel and you aren't using an initrd. > > Dear Ken, > > It's true that I have avoided using an initrd. Do I have to use it to go > from kernel 2.6.3 to 2.6.5? Does compiling the root filesystem into the > kernel involve configuration options or something more?
Use of an initrd is generally something which is used for one of a few reasons: 1) Use by distributions to create a "general purpose kernel and included modules where by all modules necessary to boot the system far enough to let the real filesystem take over." and 2) Used in cases where a user needs to load a kernel in a special way such that it can change its root filesystem (such as what you may find in certain floppy-disk based "net boot" and software RAID on root filesystem, etc.) The general users of Linux have little need for initrd on their systems. How do you eliminate the need for initrd on a system? Simple, make support for all required hardware necessary to get "/" and supported volumes mounted an permit the booting of your machine to continue. This means including support for your IDE (or SCSI, or other) interface to your boot devices as a _static_ part of your kernel. This means including support for all Filesystems used by local volumes necessary for booting (enought to get the files from /proc, /dev, /etc and /lib/modules/*) so that other modules ma be loaded. Some hardware also requires supprot for bug fixes on certain kinds of interfaces also be part of the kernel as static selections. (Seek the IDE interface support section, and note the various IDE/ATA interface chipset bug fixes and work arounds... if you have one of these chipsets, then you shold enable to workaround offered as static parts of the kernel.) Some newer hardware (e.g. ata-100) may require you to enable extra otpions in the interface section beyond simple IDE interface support. If you are going to use devfs, or another like it, make it a static part of the kernel. Anything that would be required during boot needs to be static, and in the kernel (as a "Y" not as an "M".) Learning how to build an initrd, and then referecing the initrd from lilo.conf or with grub is extra work, and yet another link in the chain for failure. Some people think, "if enabling what is needed for boot as a static part of the kernel is better, then I'll make everything a static part of the kernel!" Bad idea. The kernel will probably be too big to use, and/or you will be using memory for things you do not have any immediate need to have reserved, due to lack of use. Also, some things are better made as modules (like appletalk) as they can be removed and re-instered if there is a problem. Review yoru kernel config, and enable as "Y" any filesystems, or drives to support devices which you have that are necessary to get /proc, /dev, / (as well as /etc and /lib) mounted with all files available so that other modules can be loaded from /lib/modules/* and the rest of the boot may proceed. HTH, -ME _______________________________________________ vox-tech mailing list [EMAIL PROTECTED] http://lists.lugod.org/mailman/listinfo/vox-tech
