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
signature.asc
Description: OpenPGP digital signature

