Am 09.08.2011 21:30, schrieb Daniel Frey:
> Greetings,
> 
> I discovered a possible reason for mdadm always marking my raid array as
> bad on reboot. The problem is I don't know how to check for the issue.
> 
> When using root on a native mdadm raid, the kernel handles the array
> state transition at shutdown, so it's not a big deal. However, it's
> different when using external metadata - mdadm must be called before the
> reboot.
> 
> Apparently mdadm must be called after the root filesystem is mounted
> read-only. Then it can mark the array as clean and not rebuild every
> single reboot.
> 
> Where do I check this? The /etc/init.d/mdadm script happens well before
> root is mounted read-only.
> 
> Apparently `mdadm --wait-clean --scan` needs to be called so the
> external metadata is updated correctly. If you use this command with a
> native mdadm raid it does nothing, but it's critical apparently to the
> health of other metadata types.
> 
> I've grepped through /etc/init.d/ and found nothing.
> 
> Dan
> 

Remounting root read-only is done by an init script called mount-ro
which is started in runlevel shutdown. Try to add a custom init script
to your /etc/init.d directory with the following content:

#!/sbin/runscript
depend()
{
 after mount-ro
}
start()
{
 ebegin 'Shutting down mdadm'
 mdadm --wait-clean --scan
 eend $?
}

Add it to the runlevel with `rc-update add <your-script> shutdown` and
don't forget to mark it executable.

Disclaimer: I've not tried this (obviously) and if the script eats your
dog and wreaks your system, it is entirely your fault ;)

Hope this helps,
Florian Philipp

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to