Guide des technologies

Remplacer un disque défaillant dans un RAID1

6 min read Infrastructure Mis à jour 10 Oct 2025
Remplacer un disque défaillant dans un RAID1
Remplacer un disque défaillant dans un RAID1

Simulez une panne de disque puis remplacez-le : marquez les partitions comme défaillantes, retirez-les du RAID, recopiez la table de partitions du disque sain vers le nouveau disque, supprimez d’anciennes superblocks, ajoutez les partitions au RAID et attendez la resynchronisation. Enfin, installez le chargeur d’amorçage sur les deux disques. Ce guide détaille chaque commande, des vérifications et des solutions aux erreurs fréquentes.

Contexte et objectif

Objectif : montrer comment tester une panne de disque et remplacer un disque défaillant dans un ensemble RAID1 géré par mdadm. RAID1 duplique (mirroring) les données sur deux disques. Si un disque tombe en panne, le système continue de fonctionner avec l’autre disque. Le but ici est de remettre un disque neuf en service et de resynchroniser le miroir.

Définition courte : RAID1 — miroir de blocs entre plusieurs disques pour tolérance de panne.

Important : adaptez les noms de périphériques (/dev/sda, /dev/sdb, /dev/md0…) à votre machine. Sauvegardez les données critiques avant toute manipulation sur des systèmes de production.

Prérequis

  • Accès root ou sudo sur le serveur.
  • Outils : mdadm, sfdisk, fdisk, grub/installateur de boot, dd (optionnel).
  • Disque de remplacement de taille égale ou supérieure.

1. Simuler une panne de disque

Vous pouvez soit mettre hors tension et retirer physiquement le disque, soit simuler une défaillance logiciellement. Dans l’exemple, /dev/sdb est déclaré défaillant.

Exécutez :

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm --manage /dev/md2 --fail /dev/sdb3

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm --manage /dev/md2 --remove /dev/sdb3

Puis arrêtez la machine si vous préférez remplacer physiquement le disque :

shutdown -h now

Remplacez le disque défaillant par un neuf et remontez la machine. Si vous avez simulé la panne en retirant /dev/sdb, installez maintenant un nouveau disque en tant que /dev/sdb. Si vous aviez retiré /dev/sda, remettez le bon disque en /dev/sda et connectez le nouveau en /dev/sdb selon votre architecture.

2. Vérifier l’état du RAID après redémarrage

Après le boot, vérifiez l’état :

cat /proc/mdstat

Exemple attendu en cas d’état dégradé :

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0]
200704 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
522048 blocks [2/1] [U_]

md2 : active raid1 sda3[0]
9759360 blocks [2/1] [U_]

unused devices: 
[root@server1 ~]#

Vérifiez aussi la sortie de fdisk pour voir l’état des tables de partitions :

fdisk -l

Exemple fourni :

[root@server1 ~]# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   fd  Linux raid autodetect
/dev/sda2             26          90      522112+  fd  Linux raid autodetect
/dev/sda3             91        1305     9759487+  fd  Linux raid autodetect

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/md2: 9993 MB, 9993584640 bytes
2 heads, 4 sectors/track, 2439840 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md2 doesn't contain a valid partition table

Disk /dev/md1: 534 MB, 534577152 bytes
2 heads, 4 sectors/track, 130512 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md0: 205 MB, 205520896 bytes
2 heads, 4 sectors/track, 50176 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table
[root@server1 ~]#

3. Copier la table de partitions du disque sain vers le nouveau disque

Copiez la table de partitions de /dev/sda vers /dev/sdb :

sfdisk -d /dev/sda | sfdisk /dev/sdb

Si sfdisk se plaint (signature MSDOS absente), vous pouvez forcer :

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Exemple d’échanges :

[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK

Disk /dev/sdb: 1305 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    401624     401562  fd  Linux raid autodetect
/dev/sdb2        401625   1445849    1044225  fd  Linux raid autodetect
/dev/sdb3       1445850  20964824   19518975  fd  Linux raid autodetect
/dev/sdb4             0         -          0   0  Empty
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 ~]#

Notes : sfdisk recopie la géométrie et les marqueurs RAID (type fd). Si le disque de remplacement est plus grand, les partitions répliquées conservent la taille initiale ; vous pouvez redimensionner ultérieurement.

4. Supprimer d’éventuels superblocks RAID sur le nouveau disque

Avant d’ajouter les partitions au RAID, nettoyez toute signature RAID existante :

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3

Cette étape évite que le nouveau disque conserve des métadonnées RAID incohérentes.

5. Ajouter les partitions au RAID

Ajoutez les partitions au miroir :

mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
mdadm -a /dev/md2 /dev/sdb3

Vérifiez immédiatement l’état :

cat /proc/mdstat

Exemple pendant la reconstruction :

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
522048 blocks [2/2] [UU]

md2 : active raid1 sdb3[2] sda3[0]
9759360 blocks [2/1] [U_]
[=======>.............]  recovery = 39.4% (3846400/9759360) finish=1.7min speed=55890K/sec

unused devices: 
[root@server1 ~]#

Attendez la fin de la resynchronisation. Quand la reconstruction est terminée, vous devriez voir [UU] sur chaque raid.

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
522048 blocks [2/2] [UU]

md2 : active raid1 sdb3[1] sda3[0]
9759360 blocks [2/2] [UU]

unused devices: 
[root@server1 ~]#

6. Réinstaller le chargeur d’amorçage (GRUB)

Pour garantir que la machine peut démarrer si un disque échoue, installez GRUB sur les deux disques. Lancez grub (ou grub-install selon votre distribution interactive) et exécutez :

grub

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

Sur certaines distributions modernes utilisez grub-install :

grub-install /dev/sda
grub-install /dev/sdb

Note : la procédure exacte dépend de la version de GRUB et de la distribution. Vérifiez la documentation locale si grub-install diffère.

7. Vérifications finales

  • cat /proc/mdstat doit montrer tous les disques actifs avec [UU].
  • fdisk -l doit montrer les mêmes partitions sur les deux disques.
  • Vérifiez /var/log/messages ou journalctl pour des erreurs mdadm ou disque.
  • Testez un reboot pour vérifier que le système démarre depuis chacun des disques (si possible, testez en retirant temporairement un disque).

Critères d’acceptation

  • Le RAID1 affiche [UU] pour chaque array dans /proc/mdstat.
  • Les partitions sur /dev/sda et /dev/sdb correspondent (mêmes tailles et types).
  • Le chargeur d’amorçage est installé sur les deux disques et le système peut démarrer.

Liste de contrôle administrateur (Opérateur)

  • Sauvegarde des données critiques effectuée.
  • Remplacement physique du disque réalisé (si applicable).
  • Tables de partitions copiées avec sfdisk.
  • Superblocks nettoyés avec mdadm –zero-superblock.
  • Partitions ajoutées au RAID (mdadm -a).
  • Attente de la reconstruction et vérification via /proc/mdstat.
  • GRUB installé sur chaque disque.
  • Test de reboot effectué.

Mini-méthodologie rapide (séquence d’actions)

  1. Marquer partitions défaillantes et les retirer du RAID.
  2. Remplacer le disque matériel ou reconnecter le disque neuf.
  3. Copier la table de partitions (sfdisk).
  4. Zero-superblock sur les nouvelles partitions.
  5. Ajouter les partitions au RAID.
  6. Attendre la synchronisation.
  7. Réinstaller le chargeur d’amorçage.

Dépannage — erreurs courantes et solutions

  • sfdisk: ERROR: sector 0 does not have an msdos signature
    Solution : utiliser sfdisk –force ou initialiser le MBR avec dd si vous savez ce que vous faites (ex. dd if=/dev/zero of=/dev/sdb bs=512 count=1), puis retenter la copie.

  • Reconstruction très lente
    Causes possibles : I/O saturé, réglage de speed de mdadm, charge système.
    Actions : vérifier iostat, réduire autres I/O, vérifier /proc/sys/dev/raid/speed_limit_min et speed_limit_max.

  • Le disque ajouté n’entre pas dans l’array
    Vérifiez que le type de partition est 0xfd (Linux raid autodetect) et que la table de partitions a bien été relue (partprobe ou reboot si nécessaire). Assurez-vous d’avoir supprimé d’anciennes superblocks.

  • Problème de démarrage après remplacement
    Réinstallez GRUB sur les deux disques et vérifiez l’ordre de boot dans le BIOS/UEFI.

Contre-exemples et limites

  • Si plusieurs disques tombent en panne simultanément dans un RAID1 à deux membres, la reconstruction échoue. RAID1 protège contre la perte d’un disque, pas de plusieurs disques en même temps.
  • Ne tentez pas ces opérations sur des arrays complexes (RAID5/6) sans plan de sauvegarde et tests préalables.

Approches alternatives

  • Utiliser des partitions GPT et gdisk si vos disques sont modernes et que vous préférez GPT plutôt que MBR.
  • Utiliser des outils de provisioning/disques (PXE, imaging) pour cloner la table de partitions et le contenu initial si vous avez beaucoup de serveurs à remplacer.

Fiche pratique — chiffres clés

  • Taille d’exemple du disque : ~10.7 GB (10 737 418 240 bytes)
  • Commandes clés : mdadm, sfdisk, fdisk, grub/grub-install, dd (optionnel)

Glossaire (1 ligne)

  • mdadm : utilitaire de gestion des ensembles RAID logiciels sous Linux.
  • sfdisk : utilitaire de partitionnement en ligne pour copier/écrire des tables de partitions.

Résumé

Remplacer un disque RAID1 consiste à simuler ou détecter la panne, retirer la partition défaillante, copier la table de partitions sur le disque de remplacement, nettoyer d’éventuelles signatures RAID, ajouter les partitions au miroir et attendre la resynchronisation. Enfin, assurez-vous que GRUB est présent sur chaque disque pour la tolérance de démarrage.

Important : testez la procédure sur un environnement non critique avant de l’exécuter en production.

Liens utiles

Auteur
Édition

Matériaux similaires

Joystick Pokémon GO — guide MocPOGO
Jeux mobiles

Joystick Pokémon GO — guide MocPOGO

RAID1 et LVM — créer et migrer /boot et volumes
Système

RAID1 et LVM — créer et migrer /boot et volumes

Corriger l'erreur de collage des données d'entreprise
Support technique

Corriger l'erreur de collage des données d'entreprise

Exclure dossiers de la recherche Windows
Windows Confidentialité

Exclure dossiers de la recherche Windows

Transférer des fichiers entre smartphones
Guides Techniques

Transférer des fichiers entre smartphones

Corriger l'erreur GeForce Experience 0x0003
Dépannage GPU

Corriger l'erreur GeForce Experience 0x0003