Remplacer un disque dur défaillant dans un RAID1 sous Linux
Ce guide explique pas à pas comment simuler la panne d’un disque, remplacer physiquement un disque défaillant dans un RAID1 logiciel (mdadm), copier la table de partitions, réintégrer le nouveau disque et réinstaller le chargeur d’amorçage. Suivez les commandes dans l’ordre, surveillez /proc/mdstat et attendez la resynchronisation avant de quitter.
Contexte
On part du principe que vous avez un ensemble RAID1 nommé /dev/md0, /dev/md1 et /dev/md2 composé de /dev/sda1..3 et /dev/sdb1..3. Ici nous simulons la panne de /dev/sdb et montrons comment la remplacer par un nouveau disque en conservant la configuration RAID et le chargeur d’amorçage.
Important: effectuez ces opérations en tant que root ou avec sudo. Sauvegardez les données critiques avant toute manipulation sur des systèmes en production.
1) Simuler la panne du disque
Vous pouvez soit éteindre la machine et débrancher physiquement le disque, soit le retirer « logiciellement » :
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3
Puis retirez les périphériques du RAID :
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3
Arrêtez ensuite la machine si vous remplacez le disque physiquement :
shutdown -h now
Remplacez le disque défaillant par un nouveau disque. Si vous avez simulé /dev/sda, remettez les disques comme il faut (l’ordre des noms de périphériques peut changer selon le BIOS/UEFI).
2) Vérifier l’état du RAID après redémarrage
Après le démarrage, vérifiez l’état :
cat /proc/mdstat
Exemple de sortie indiquant un ensemble dégradé :
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
104320 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
513984 blocks [2/1] [U_]
md2 : active raid1 sda3[0]
4618560 blocks [2/1] [U_]
unused devices:
[root@server1 ~]#
Vous pouvez aussi lister les disques :
fdisk -l
(La sortie peut montrer que /dev/sdb n’a pas de table de partitions valide.)
3) Copier la table de partitions du disque sain vers le nouveau disque
Pour recopier la table de partitions de /dev/sda vers /dev/sdb :
sfdisk -d /dev/sda | sfdisk /dev/sdb
Si sfdisk se plaint (signature manquante), vous pouvez forcer l’opération :
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Exemple d’interaction :
[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 208844 208782 fd Linux raid autodetect
/dev/sdb2 208845 1237004 1028160 fd Linux raid autodetect
/dev/sdb3 1237005 10474379 9237375 fd Linux raid autodetect
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table
Re-reading the partition table ...
[root@server1 ~]#
4) Nettoyer toute trace RAID précédente et ajouter les partitions au RAID
Effacez d’abord d’éventuels superblocs RAID sur les partitions du nouveau disque :
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3
Puis ajoutez-les aux ensembles RAID correspondants :
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3
Vérifiez l’état de la reconstruction :
cat /proc/mdstat
Exemple montrant la progression :
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
513984 blocks [2/2] [UU]
md2 : active raid1 sdb3[2] sda3[0]
4618560 blocks [2/1] [U_]
[===>.................] recovery = 15.4% (715584/4618560) finish=4.9min speed=13222K/sec
unused devices:
[root@server1 ~]#
Attendez que la resynchronisation soit terminée :
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
513984 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
4618560 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
5) Réinstaller le chargeur d’amorçage (GRUB)
Après avoir confirmé que tous les ensembles sont sains, installez GRUB sur les deux disques pour assurer la capacité de démarrage si l’un des disques tombe en panne :
Démarrez grub en mode interactif (sur certaines distributions utilisez grub-install) :
grub
Dans l’invite GRUB, exécutez :
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Cela installe le chargeur d’amorçage sur le MBR/secteur d’amorçage de chaque disque.
Récapitulatif des étapes (mini-méthodologie)
- Simuler ou constater la panne et retirer le disque fautif.
- Remplacer physiquement le disque et démarrer.
- Vérifier /proc/mdstat et fdisk -l.
- Copier la table de partitions (sfdisk) du disque sain vers le nouveau.
- Effacer tout superbloc existant (mdadm –zero-superblock).
- Ajouter les partitions au RAID (mdadm -a).
- Surveiller la resynchronisation (/proc/mdstat) jusqu’à 100%.
- Réinstaller GRUB sur tous les disques pertinents.
Checklist pour l’administrateur
- Avoir une sauvegarde récente des données critiques.
- S’assurer d’un accès root ou sudo.
- Noter la configuration RAID actuelle (mdadm –detail /dev/mdX).
- Remplacer physiquement le disque (ou simuler la panne en sécurité).
- Copier la table de partitions et vérifier les partitions créées.
- Zero-superblock si nécessaire, puis réintégrer au RAID.
- Surveiller la reconstruction et attendre son achèvement.
- Réinstaller le chargeur d’amorçage sur tous les disques.
Quand cette méthode peut échouer et alternatives
- Si vos disques utilisent GPT au lieu de MBR, préférez sgdisk pour copier la table de partitions (sgdisk –backup/–restore).
- Si les identifiants de périphériques changent (ordre BIOS/UEFI), vérifiez les UUID et utilisez les chemins basés sur WWN (/dev/disk/by-id/) pour éviter les confusions.
- Si sfdisk refuse la copie, créer manuellement les partitions avec parted ou fdisk en respectant les tailles et types (type fd pour RAID).
- Alternative: utiliser clonage secteur par secteur (dd) si la table de partitions est corrompue mais que vous avez un disque identique.
Important: n’utilisez pas dd aveuglément sur des disques en production sans vérifier les tailles et offsets.
Modèle de décision rapide
flowchart TD
A[Disque défaillant détecté] --> B{Disque physiquement remplacé ?}
B -- Non --> C[Simuler retrait logiciel et retirer du RAID]
B -- Oui --> D[Démarrer avec nouveau disque]
D --> E[Copier table de partitions]
C --> E
E --> F[Zero-superblock]
F --> G[Ajouter partitions au RAID]
G --> H{Resynchronisation OK ?}
H -- Non --> I[Attendre / vérifier logs]
H -- Oui --> J[Réinstaller GRUB sur tous les disques]
J --> K[Fin]
Glossaire en une ligne
- mdadm : utilitaire pour gérer les ensembles RAID logiciels sous Linux.
- sfdisk : outil pour manipuler des tables de partitions DOS/MBR en ligne de commande.
- zero-superblock : opération mdadm qui efface la signature RAID d’une partition.
Notes finales
Remplacer un disque dans un RAID1 logiciel est une opération courante mais sensible : vérifiez toujours les partitions, surveillez la resynchronisation et assurez-vous que le système est capable de démarrer sur chaque disque. Documentez les actions réalisées et gardez des sauvegardes à jour.
Liens
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Fedora: http://fedoraproject.org
Matériaux similaires

Magic Mouse se déconnecte ? Guide de dépannage

Compiler et installer un noyau Linux (Mandriva)

Transformer Android en souris, clavier et manette

Erreur 500 sur Character.AI — guide de résolution

Musique de fond pour apps Android
