[vox-tech] Grub question

Mike Simons vox-tech@lists.lugod.org
Wed, 26 Feb 2003 12:25:45 -0500


On Wed, Feb 26, 2003 at 01:29:16AM -0800, Ryan wrote:
> I kept getting errors during the boot up, some of which included "no
> ext3 support" 

  yes you need to compile in ext3 into the kernel, not a module.
(unless you have the right modules in your initial ram disk (initrd),
you should be able to do something fancy, and not have ext compiled in)

> title Red Hat Linux (2.4.18-24.7.x)
>         root (hd0,0)
>         kernel /boot/vmlinuz-2.4.18-24.7.x ro root=/dev/hda1
>         initrd /boot/initrd-2.4.18-24.7.x.img
> 
> I want to add my new kernel /boot/bzImage
> I was wondering what the last line with the initrd does. I couldn't find
> anywhere online that was particularly useful about what this does.

  I've not created a initrd before, but it's basically a root filesystem 
that gets mounted before your _real_ root filesystem to supply modules
and other special boot time support for lots of different hardware...
shortly after the initrd is mounted and some things from it are loaded
it gets replaced as '/' by whatever your read root partition is, and 
bootup continues from there.
  I've not made my own initrd before... only used the ones supplied 
by install disks.  Since they often are full of boot time critical 
kernel modules I think that a new disk image needs to be built to
match any newer kernel (e.g. you would not use a 2.4.18 initrd with a 
2.4.20 kernel).

> title Red Hat Linux (mine)
>         root (hd0,0)
>         kernel /boot/bzImage ro root=/dev/hda1

  If you get the right things compiled into your bzImage that should
work.  Keep in mind that you should rename /boot/bzImage to something
more descriptive like:
  /boot/vmlinuz-2.4.20
there are a few advantages:
- when you upgrade to the next kernel and copy it into /boot
  you won't wipe out the one you are running.
- if you try to troubleshoot some problem months later you'll know 
  which versions you have available for boot.

  also, if you use something like EXTRAVERSION=-foo when compiling the 
kernel and modules, you'll be able to have multiple copies of 2.4.20 
around, without using that flag when you make modules_install a different
configuration of 2.4.20 those modules will overwrite your existing
modules, if you turned off module support for some things the old
files will not be removed and if you changed some important options
like non-SMP to SMP, the new modules will not work with the previous
kernel.
  it can be a mess compiling two editions of the same kernel version
without using EXTRAVERSION...

    TTFN,
      Mike