2006-01-29 23:13:50

by Dimitris Zilaskos

[permalink] [raw]
Subject: RAID autodetection not working when booting with initramfs


Hi ,

I am building a diskless system with 2.6.15.1 kernel. Eveyrthing is built
in the kernel ( no modules). It is booting with the help of pxelinux and
then proceeds to nfsmount its root filesystem etc.The system has a raid1
array on two scsi disks.
Recently I added an initramfs image to the boot procedure (append
initrd=initramfs.img) for some tests. Since then the raid array is not
autodetected (with identical kernel). If I remove the initramfs line and
reboot , the array is autodetected. When I am using initramfs I can
manually activate it using mdadm.

Is this by design or something is wrong ?

TIA,

--
============================================================================

Dimitris Zilaskos

Department of Physics @ Aristotle University of Thessaloniki , Greece
PGP key : http://tassadar.physics.auth.gr/~dzila/pgp_public_key.asc
http://egnatia.ee.auth.gr/~dzila/pgp_public_key.asc
MD5sum : de2bd8f73d545f0e4caf3096894ad83f pgp_public_key.asc
============================================================================


2006-01-29 23:33:27

by NeilBrown

[permalink] [raw]
Subject: Re: RAID autodetection not working when booting with initramfs

On Monday January 30, [email protected] wrote:
>
> Hi ,
>
> I am building a diskless system with 2.6.15.1 kernel. Eveyrthing is built
> in the kernel ( no modules). It is booting with the help of pxelinux and
> then proceeds to nfsmount its root filesystem etc.The system has a raid1
> array on two scsi disks.
> Recently I added an initramfs image to the boot procedure (append
> initrd=initramfs.img) for some tests. Since then the raid array is not
> autodetected (with identical kernel). If I remove the initramfs line and
> reboot , the array is autodetected. When I am using initramfs I can
> manually activate it using mdadm.
>
> Is this by design or something is wrong ?

To quote from init/main.c:
/*
* check if there is an early userspace init. If yes, let it do all
* the work
*/

So yes, it is by design. Assembling arrays with mdadm gives you a
lot more control than the kernel-autodetect so as you have an
initramfs, it is a good idea to make use of it.

If you *really* want to use the autodetect functionality, you can look
around for a program called 'raidautorun'. It does triggers the
autodetect function from userspace.

NeilBrown

2006-01-30 16:11:17

by Dimitris Zilaskos

[permalink] [raw]
Subject: Re: RAID autodetection not working when booting with initramfs


> /*
> * check if there is an early userspace init. If yes, let it do all
> * the work
> */
>
> So yes, it is by design. Assembling arrays with mdadm gives you a
> lot more control than the kernel-autodetect so as you have an
> initramfs, it is a good idea to make use of it.
>
> If you *really* want to use the autodetect functionality, you can look
> around for a program called 'raidautorun'. It does triggers the
> autodetect function from userspace.
>

Thank you , raidautorun did the trick. I am trying to build an
initramfs as much generic as possible to be used with hundreds of systems,
so doing a custom image for every possible raid combination is really not
an options compared to autodetection.

Thnx again,

--
============================================================================

Dimitris Zilaskos

Department of Physics @ Aristotle University of Thessaloniki , Greece
PGP key : http://tassadar.physics.auth.gr/~dzila/pgp_public_key.asc
http://egnatia.ee.auth.gr/~dzila/pgp_public_key.asc
MD5sum : de2bd8f73d545f0e4caf3096894ad83f pgp_public_key.asc
============================================================================