"Jared" <[EMAIL PROTECTED]> wrote:

>I have a server running on RAID 1 with the following partitions:
>  /sda1            /
>  /dev/md0      /boot
>  /dev/md1       /usr
>  /dev/md2      /var
>
>My server is Redhat 6.2 with kernel 2.2.16-3.  It works fine until
>I upgraded it (using source distribution) to 2.2.19.  After I rebooted
>to the new kernel, I got this error:
>
>  Starting up RAID devices: /dev/md0: Invalid argument
>  /dev/md0 is not a RAID or LINEAR array !
>  /dev/md1 is not a RAID or LINEAR array !
>  /dev/md2 is not a RAID or LINEAR array !
>
>  *** An error occured during the RAID Startup
>
>I compiled the new kernel with Linear and Raid 0, 1, 4 & 5 enabled.
>I also noticed that my original lilo.conf contains a line
>  initrd=/boot/initrd-2.2.16-3.img
>so, I created a new initrd-2.2.19.img but the problem still remains.
>
>What could be wrong here and what should I do to solve this ?

I'm not familiar with RAID devices but the ff. might help narrow down the source of 
your problem:

Are you using software or hardware RAID?  Not sure, but I think /dev/mdx is for 
software RAID only.  If you're using hardware RAID, make sure that you have the proper 
drivers compiled into the kernel or as modules.  Compiled into the kernel is probably 
better.

How did you create this initrd-2.2.19.img?  I will assume that you assumed that 
initrd-2.2.16-3.img is a kernel image file.  It is most probably not (I'm not familiar 
with RH).  It is most probably an initial ram disk or initrd.  See your 
/path/to/src/linux/Documentation/initrd.txt for more info.  An initrd is basically a 
very small, but basically complete, linux file system which is loaded into ram and 
booted to at startup.  It then does some initialization or something then probably 
loads the main system.

In your case, I assume, initrd is used for setting up the RAID devices before booting 
it, since it cannot be directly booted (no root fs).

It might be helpful for you if you could examine the contents of the 
initrd-2.2.16-3.img file.  It's a compressed file system so you must first uncompress 
it:

Check if it's indeed a compressed file:
>file initrd-2.2.16-3.img

then uncompress it:
>zcat initrd-2.2.16-3.img > initrd

Since it's a file system, it must be mounted somehow.  AFAIK, there are two ways of 
doing this.  Using a loop device or a ram disk.  I will try to explain the use of a 
loop device.  man losetup for details.  For this to work, loop device support must be 
compiled into the kernel or as a module.

If it's a module:
>insmod loop.o

Then associate your file to the first loop device:
>losetup /dev/loop0 initrd

We can then mount the loop device:
>mount /dev/loop /mnt

You can then examine the contents of /mnt like any "normal" file system.  Check the 
init files to determine how the system is initialized.

Simply replacing the kernel image (and device drivers, if applicable) in the initrd 
would probably work. Try that and make a new initrd as follows:

Unmount the loop device:
>umount /mnt

Compress the file:
>dd if=/dev/loop0 | gzip -v9 > initrd-2.2.19.img

Change the initrd= line in your lilo.conf to point to the new initrd, run lilo, cross 
your fingers, pray, then reboot.

HTH,
abramos


__________________________________
www.edsamail.com
_
Philippine Linux Users Group. Web site and archives at http://plug.linux.org.ph
To leave: send "unsubscribe" in the body to [EMAIL PROTECTED]

To subscribe to the Linux Newbies' List: send "subscribe" in the body to 
[EMAIL PROTECTED]

Reply via email to