GRUB module query

Dave S ubuntu at pusspaws.net
Sun Aug 20 08:56:42 UTC 2006


On Saturday 19 August 2006 23:16, Tod Merley wrote:
> Hi Again Dave (I hope everybody can forgive top posting and interwoven
> replies but...),
>
> Interwoven Replies:
>
> On 8/19/06, Dave S <ubuntu at pusspaws.net> wrote:
> > On Thursday 17 August 2006 22:15, Tod Merley wrote:
> > > On 8/17/06, Dave S <ubuntu at pusspaws.net> wrote:
> > > > > Hi Dave!
> >
> > Ahh my problem solved - I am no expert but I will tell you what I have
> > found. If I am wrong let me know - its the way i learn :)
> >
> >
> > My PCI raid controller has its own BIOS - when I boot it gives me a
> > config screen for various RAID options - I turn them off and use kernel
> > software RAID.
>
> Interesting.  The whole interaction between BIOS, apparently in your
> case a secondary "on card" bios, and then GRUB, and then Kernel.
> Bill has probably been criticised about his tendency to "take over the
> world" thing but it DID make this whole area more regimented for his
> world.  In our case, I hope GRUBv2, new more Linux.NX aware BIOSs, and
> super kernels will move some of this off of our desks.
>
> > > > > I do not understand.  If you need the raid driver to access the
> > > > > disk then how can you even fully load GRUB?!?!
> >
> > Because GRUB is loaded by the BIOS. On power up it is the BIOS that is
> > first started, the BIOS loads in the first few sectors of a HDD and
> > executes them - hello GRUB ! Only the first HDD light of my RAID array
> > flickers - its not in RAID mode yet.
> >
> > So on boot the BIOS (and I guess my RAID card BIOS) conspire to load the
> > first few sectors of my RAID hdd - so far so good :)
> >
> > (NOTE BIOSs are getting too smart - I used to have 2 x ide controllers on
> > the motherboard hda/b hdc/d. I plug in the raid card and the card assumes
> > hda/b hdc/d and my motherboard ide controllers are shifted to hde/f hdg/h
> > !)
> >
> > So grub then asks the BIOS to load the kernel & initrd.img. initrd.img is
> > the temporary RAM root file system (very stripped down) - you can find it
> > in /boot and look whats inside by ...
> >

linuxrc is executed about here - it checks the hardware, works out what basic 
kernel modules are needed, loads them from the ramdisk initrd.img and ...


> > root at dave-comp:/boot# mkdir /tmp/tmpinitrd
> > root at dave-comp:/boot# cd /tmp/tmpinitrd/
> > root at dave-comp:/tmp/tmpinitrd# cat /boot/initrd.img-2.6.15-26-386 | gzip
> > -d | cpio -i --make-directories
> > 31437 blocks
> > root at dave-comp:/tmp/tepinitrd# ls
> > bin  conf  etc  init  lib  modules  sbin  scripts  usr
> >
> > Its a mini filesystem :)
>
> Oh I was happy to see this,  :)  :)  !!  I knew about the ramdisk and
> had intended to "unzip and reconstruct" one.  I believe it will make a
> very good "eyes on" part of my presentation.  I have already run
> through the procedure (for my Dapper) and done some "snooping" - all
> recorded in WP.  I may also make this the area to use when looking at
> the filesystem hierarchy (requested by a LUG member).
>
> > Note the kernel has not accessed the HDDs yet, this exists entirely in
> > RAM. The kernel then starts and access this filesystem. Inside the
> > filesystem it executes /linuxrc to detect hardware and load appropriate
> > modules - all from this RAM filesystem.
> >
> > Once the modules are loaded it then accesses the HDDs and changes its
> > root filesystem to the main HDD filesystem. (both HDD leds start blinking
> > on my HDDs - RAID is working :)
> >
> > My problem was that /linuxrc could not detect and load the needed module.
> > My solution was ...
>
> Who, from where, calls "linuxrc"?

linuxrc is a program that is started in the start-up stage of the kernel prior 
to the actual boot process. This allows you to boot a small modularized 
kernel and to load the few drivers that are really needed as modules.

from ... 
http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.1/adminguide9.1/ch12s04.html

You can also dip into initrd.img & open the file :) - cool isn't it :)


>
> > apt-get install initrd-tools
> > vi /etc/mkinitrd/modules
> > and add the line 'it821x'
> > apt-get install --reinstall linux-image-2.6.15-26-386
> >
> > re-boot, the new initrd.img is loaded & everything works :)
>
> Ahhhh! Soo happy to see the chicken and egg happy at the same time.
>
> Thank you Dave!  The presentation will be better, and those I run into
> doing this mail list research who do have a "my egg has no chicken"
> problem will be very happy to know this!
>
> Thanks again!
>
> Tod

No problem. I learnt a lot solving my problem & it is good to help someone 
else. That way we all benefit :)

Good luck with the presentation

Dave






More information about the ubuntu-users mailing list