[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: initrd -- what exactly is it?



I just want to thank everyone for all your explanations -- it's been
very helpful!  Moving on to newer problems now, but it's always great
to have things explained to you!
matt



On Fri, Jan 31, 2003 at 05:34:59PM -0600, Shyamal Prasad wrote:
>     "Matt" == Matt Price <matt.price@utoronto.ca> writes:
> 
>     Matt> hi there, can someone help me figure out what exactly initrd
>     Matt> is, and why kernels use it?  I have looked through the docs,
>     Matt> and I understand that it's thefile used for an initial
>     Matt> ramdisk in some cases, but I don't understand why it would
>     Matt> be used in some cases and not in others.  So for inst ance,
>     Matt> the demudi kernel I just installed seems to demand the use
>     Matt> of initrd, and I take it GRUB needs an anitrd argument to
>     Matt> load the kernel.  But why don't my own self-compiled kernels
>     Matt> require an initrd argument at boot (nor have an initrd file
>     Matt> anywhere in /boot, as far as I can tell)?
> 
> I'm not expert on this, but here goes anyway: the initrd image is,
> like you point out, a ramdisk image that common Linux bootloaders
> (lilo, grub, ....) can load off a wide variety of file systems.
> 
> There is no real need to use initrd for personal use. If you know
> exactly what you need in your kernel, just build it in. (well,
> personally, I never build a kernel unless my hardware requires it, the
> pre-packaged Debian kernels are wonderful bits of art :-)
> 
> Initrd gets to be very useful when you try to build a kernel that will
> be used in a wide variety of environments. You don't want to build
> everything into the kernel, but at the same time you are not sure what
> might be required to boot a system up and find the rest of the system.
> 
> In that case you build a small kernel with what you know everyone will
> absolutely need. Then you throw a lot of stuff that will satisfy a
> large variety of systems into the intird image. The initrd ram disk is
> used to bootstrap the kernel: basically you boot the kernel, mout the
> initrd image, which pokes around and loads modules it figures that
> specific system needs to find the rest of the hardware (e.g. it needs
> ext3 or rieserfs file system support for the root partition or some
> such thing), then mounts the root file system and goes on with the
> usual initialization.
> 
> The advantage is of this approach is, for example, that if you don't
> use ext3 you will not find ext3 in your memory. But if you use ext3
> you can still boot the system even though ext3 is not built into the
> kernel (because it is in the initrd image).
> 
> You can use 'mount -t cramfs -o loop /mnt intrd.img.file.path' to look
> into an initrd image. You will find it quite instructive I'm sure.
> 
> Cheers!
> Shyamal
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-user-request@lists.debian.org 
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: