Tout au long de cet HOWTO :

  • j'utiliserai mdadm (en standard sur toutes les distribution)
  • je considérerai que je n'ai que 2 arrays md0 (sda1 et sdb1) et md1 (sda2 et sdb2) mais vous devez faire les actions pour tous vos array pour chacun de vos arrays
  • je considérerai que c'est /dev/sdb qui est crashé.

Tout d'abord on vérifie ce que le systeme en pense :

#cat /proc/mdstat

Si le systeme n'a rien détecté (c'est possible si vous avez modifé la table partitions de sdb par erreur) et qu'il continue à marquer les partitions qui ont disparues comme actives empressez vous de les supprimer des différents arrays avec une ligne du style :

#mdadm --manage --set-faulty /dev/md0 /dev/sdb1
#mdadm --manage --set-faulty /dev/md1 /dev/sdb2

Cette première commande (normalement optionnel) va indiquer au système que les disques /dev/sdb1 et /dev/sdb2 ne sont plus fiables.

ensuite on supprime ces disques des arrays :

#mdadm /dev/md0 -r /dev/sdb1
#mdadm /dev/md1 -r /dev/sdb2

voila nos 2 arrays ne contiennent plus qu'un disque.

maintenant on remplace le disque defectueux et on reboot (dans le cas d'un crash physique du disque dur)

un 'cat /proc/mdstat' nous montre nos arrays qui sont en mode dégradé (sur un disque), il faut donc remonter notre deuxieme disque. Tout d'abord on recopie la table de partitions du disque valide sur le 2nd disque pour ce faire une simple ligne de commande suffit:

#sfdisk --dump /dev/sda | sfdisk /dev/sdb

voila notre disque /dev/sdb contient la même table de partitions que /dev/sda. Il ne nous reste plus qu'a reconstruire notre raid. pour cela :

#mdadm /dev/md0 -a /dev/sdb1
#mdadm /dev/md1 -a /dev/sdb2

Puis on attend que la reconstruction s'acheve.
Pour vérifier l'état d'avancement vous pouvez faire un 'cat /proc/mdstat' de temps en temps.

Liens utiles :
The Software-RAID HOWTO
Page de man mdstat