Guide des technologies

Remplacement d'un disque dur défaillant dans un RAID1

4 min read Administration système Mis à jour 17 Oct 2025
Remplacer un disque RAID1 — guide rapide
Remplacer un disque RAID1 — guide rapide

Contexte

Ce guide décrit, étape par étape, comment simuler la panne d’un disque dur dans un ensemble RAID1 sous Linux, remplacer le disque défaillant et resynchroniser l’ensemble. Les commandes et sorties présentées sont conservées telles quelles pour faciliter la comparaison.

Important: adaptez les noms de périphériques (/dev/hda, /dev/hdb, /dev/md0, /dev/md1, /dev/md2) à votre système. Vérifiez les volumes montés et sauvegardez les données critiques avant toute manipulation.

9 Tester

Simulons maintenant une panne de disque. Peu importe si vous choisissez /dev/hda ou /dev/hdb ici. Dans cet exemple, on suppose que /dev/hdb est défaillant.

Pour simuler la panne, vous pouvez soit éteindre la machine et retirer physiquement /dev/hdb, soit le retirer (soft) avec ces commandes :

mdadm --manage /dev/md0 --fail /dev/hdb1  
mdadm --manage /dev/md1 --fail /dev/hdb5  
mdadm --manage /dev/md2 --fail /dev/hdb6

Puis retirez le périphérique du RAID :

mdadm --manage /dev/md0 --remove /dev/hdb1  
mdadm --manage /dev/md1 --remove /dev/hdb5  
mdadm --manage /dev/md2 --remove /dev/hdb6

Éteignez la machine :

shutdown -h now

Ensuite, installez le nouveau disque /dev/hdb (ou remettez le disque de remplacement à la place de /dev/hda si vous avez simulé la panne de /dev/hda) et démarrez la machine. Elle doit démarrer normalement.

Vérifiez l’état dégradé de l’ensemble :

cat /proc/mdstat

Vous devriez voir quelque chose de similaire à :

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 hda5[0]  
      417536 blocks [2/1] [U_]  
  
md0 : active raid1 hda1[0]  
      176576 blocks [2/1] [U_]  
  
md2 : active raid1 hda6[0]  
      4642688 blocks [2/1] [U_]  
  
unused devices:   
[root@server1 ~]#

La sortie de fdisk permet de vérifier la reconnaissance des disques :

fdisk -l

Exemple de sortie (inchangée) :

[root@server1 ~]# fdisk -l  
  
Disk /dev/hda: 5368 MB, 5368709120 bytes  
255 heads, 63 sectors/track, 652 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  
Disk identifier: 0x00000000  
  
   Device Boot      Start         End      Blocks   Id  System  
/dev/hda1   *           1          22      176683+  fd  Linux raid autodetect  
/dev/hda2              23         652     5060475    5  Extended  
/dev/hda5              23          74      417658+  fd  Linux raid autodetect  
/dev/hda6              75         652     4642753+  fd  Linux raid autodetect  
  
Disk /dev/hdb: 5368 MB, 5368709120 bytes  
16 heads, 63 sectors/track, 10402 cylinders  
Units = cylinders of 1008 * 512 = 516096 bytes  
Disk identifier: 0x00000000  
  
Disk /dev/hdb doesn't contain a valid partition table  
  
Disk /dev/md2: 4754 MB, 4754112512 bytes  
2 heads, 4 sectors/track, 1160672 cylinders  
Units = cylinders of 8 * 512 = 4096 bytes  
Disk identifier: 0x00000000  
  
Disk /dev/md2 doesn't contain a valid partition table  
  
Disk /dev/md0: 180 MB, 180813824 bytes  
2 heads, 4 sectors/track, 44144 cylinders  
Units = cylinders of 8 * 512 = 4096 bytes  
Disk identifier: 0x00000000  
  
Disk /dev/md0 doesn't contain a valid partition table  
  
Disk /dev/md1: 427 MB, 427556864 bytes  
2 heads, 4 sectors/track, 104384 cylinders  
Units = cylinders of 8 * 512 = 4096 bytes  
Disk identifier: 0x00000000  
  
Disk /dev/md1 doesn't contain a valid partition table  
[root@server1 ~]#

Copier la table de partitions

Copiez maintenant la table de partitions de /dev/hda vers /dev/hdb :

sfdisk -d /dev/hda | sfdisk --force /dev/hdb

Exemple d’exécution :

[root@server1 ~]# sfdisk -d /dev/hda | sfdisk --force /dev/hdb  
Warning: extended partition does not start at a cylinder boundary.  
DOS and Linux will interpret the contents differently.  
Checking that no-one is using this disk right now ...  
OK  
  
Disk /dev/hdb: 10402 cylinders, 16 heads, 63 sectors/track  
  
sfdisk: ERROR: sector 0 does not have an msdos signature  
 /dev/hdb: 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/hdb1   *        63    353429     353367  fd  Linux raid autodetect  
/dev/hdb2        353430  10474379   10120950   5  Extended  
/dev/hdb3             0         -          0   0  Empty  
/dev/hdb4             0         -          0   0  Empty  
/dev/hdb5        353493   1188809     835317  fd  Linux raid autodetect  
/dev/hdb6       1188873  10474379    9285507  fd  Linux raid autodetect  
Warning: partition 1 does not end at a cylinder boundary  
Successfully wrote the new partition table  
  
Re-reading the partition table ...  
  
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)  
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1  
(See fdisk(8).)  
[root@server1 ~]#

Nettoyage et ajout du nouveau disque au RAID

Effacez les éventuelles superblocks RAID résiduels sur le disque :

mdadm --zero-superblock /dev/hdb1  
mdadm --zero-superblock /dev/hdb5  
mdadm --zero-superblock /dev/hdb6

Ajoutez ensuite les partitions au RAID :

mdadm -a /dev/md0 /dev/hdb1  
mdadm -a /dev/md1 /dev/hdb5  
mdadm -a /dev/md2 /dev/hdb6

Vérifiez la progression de la resynchronisation :

cat /proc/mdstat

Exemple pendant la reconstruction :

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 hdb5[2] hda5[0]  
      417536 blocks [2/1] [U_]  
        resync=DELAYED  
  
md0 : active raid1 hdb1[1] hda1[0]  
      176576 blocks [2/2] [UU]  
  
md2 : active raid1 hdb6[2] hda6[0]  
      4642688 blocks [2/1] [U_]  
      [===========>.........]  recovery = 59.9% (2784512/4642688) finish=7.5min speed=4076K/sec  
  
unused devices:   
[root@server1 ~]#

Attendez jusqu’à la fin de la synchronisation :

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 hdb5[1] hda5[0]  
      417536 blocks [2/2] [UU]  
  
md0 : active raid1 hdb1[1] hda1[0]  
      176576 blocks [2/2] [UU]  
  
md2 : active raid1 hdb6[1] hda6[0]  
      4642688 blocks [2/2] [UU]  
  
unused devices:   
[root@server1 ~]#

Réinstaller le chargeur d’amorçage

Lancez grub et installez le bootloader sur les deux disques pour être sûr que la machine pourra démarrer même si l’un des disques tombe en panne :

grub

Puis dans l’invite grub :

root (hd0,0)  
setup (hd0)  
root (hd1,0)  
setup (hd1)  
quit

Ceci assure que GRUB est présent sur les deux disques.

C’est tout — vous avez remplacé un disque dur défaillant dans un ensemble RAID1.

Boîte à outils et bonnes pratiques

Faits clés

  • Vérifiez /proc/mdstat pour l’état et la progression de resync.
  • Toujours zero-superblock avant de réintégrer un disque qui a déjà été utilisé dans un RAID.
  • Réinstallez le chargeur d’amorçage sur chaque disque pour la tolérance de panne.

Checklist administrateur

  • Identifier le disque défaillant (/dev/hda ou /dev/hdb).
  • Simuler ou retirer le disque défaillant.
  • Copier la table de partitions (sfdisk) si nécessaire.
  • mdadm –zero-superblock sur les partitions du nouveau disque.
  • mdadm -a pour réintégrer les partitions.
  • Surveiller /proc/mdstat jusqu’à [UU].
  • Réinstaller GRUB sur chaque disque.
  • Vérifier le démarrage complet après redémarrage.

Scénarios où cela peut échouer

  • Table de partitions incompatible : sfdisk peut générer des avertissements sur les limites de cylindre.
  • Superblocks corrompus non détectés : vérifier avec mdadm –examine.
  • Disque de remplacement défectueux : contrôlez avec smartctl avant intégration.

Guide de dépannage rapide

  • mdadm –examine /dev/hdbX pour inspecter les superblocks.
  • dmesg et journalctl -k pour les erreurs kernel liées aux disques.
  • smartctl -a /dev/hdb pour vérifier l’état SMART.

Critères d’acceptation

  • Tous les ensembles RAID montrent [UU] dans /proc/mdstat.
  • GRUB installé sur chaque disque et système démarrant correctement.

10 Liens

Résumé

  • Remplacer un disque RAID1 implique de copier la table de partitions, d’effacer les métadonnées RAID précédentes, d’ajouter le disque au RAID, d’attendre la resynchronisation et de réinstaller GRUB. Contrôlez toujours l’intégrité matérielle du disque avant l’intégration.

Notes

Important: adaptez les commandes aux chemins et aux numéros de partition de votre environnement. Ne supprimez pas de partitions sans sauvegarde préalable.

Auteur
Édition

Matériaux similaires

Mettre à niveau un Mac d'occasion
Matériel

Mettre à niveau un Mac d'occasion

Résoudre le redémarrage de Windows à l'arrêt
Système

Résoudre le redémarrage de Windows à l'arrêt

Obtenir Feuilles d'Argent dans Destiny 2
Jeux vidéo

Obtenir Feuilles d'Argent dans Destiny 2

Débloquer un compte Facebook — guide rapide
Réseaux sociaux

Débloquer un compte Facebook — guide rapide

QR codes pour la croissance d'entreprise
Marketing

QR codes pour la croissance d'entreprise

VeePN : guide complet de confidentialité
Sécurité VPN

VeePN : guide complet de confidentialité