Re: Linux and Initrd used to access disk : how does it work ?

From: Paul Rolland
Date: Tue May 24 2005 - 10:25:27 EST


Hello Dick,

> initrd means Initial RAM disk.
>
> The boot image is put onto your Hard disk. The hard disk needs
> to be accessible from the BIOS to boot from it. Most controllers
> have a BIOS module that lets it be accessed during boot so you
> don't need a chicken before the egg to start the boot.

Ok, basically, the trick is that the BIOS knows how to access the
disk, and Linux doesn't because it doesnt use the BIOS ? Or is it
some more subtle (though I doubt) thing in which only a part of the
disk can be accessed by the BIOS.

> Then, when booting, LILO or grub starts linux which uncompresses
> a RAM disk and mounts it instead of your hard disk. A special
> version of `init` (called nash) gets started which reads a script
> called linuxrc. It contains commands like:
Yes, I've seen that in my .img file...

> The module(s) are in the /lib directory of the RAM disk.
> They are put there by a build-script that installs initrd.
> This script gets executed when you do 'make install' in
> the kernel directory. If you have private modules, you
> can copy them to the appropriate /lib/modules/`uname
> -r`/kernel/drivers
> directory. You put the module(s) name(s) you need to boot
> in /etc/modprobe.conf or /etc/modules.conf (depends upon the
> module tools version) as:
>
> alias scsi_hostadapter aic7xxx
> alias scsi_hostadapter1 ata_piix
>
> ... any scsi_hostadapter stuff will be put into initrd when
> you execute the script, /sbin/mkinitrd.
>

Hmmm... I didn't know this part, thanks for the details.

So, it seems that I'm stuck with my binary module unless I can find a
way to tell the kernel to use the BIOS to access the disk ;-)))

Cheers,
Paul

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/