Remplacer un disque RAID1 défaillant
Simulez ou retirez le disque défaillant, copiez la table de partitions de l’autre disque, nettoyez les superblocs RAID, réintégrez le nouveau disque et attendez la reconstruction. Vérifiez avec cat /proc/mdstat et installez GRUB sur les deux disques pour garantir le démarrage.
Simuler et tester une panne de disque
Dans cet exercice, on part de l’hypothèse que /dev/sdb est le disque défaillant. Vous pouvez simuler la panne en arrêtant la machine et en retirant physiquement /dev/sdb, ou en le marquant comme défaillant puis en le retirant à chaud.
Marquer les partitions du disque comme défaillantes :
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
Retirer les partitions du RAID :
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
Arrêter la machine si vous remplacez physiquement le disque :
shutdown -h now
Remplacez le disque défaillant par un neuf. Si vous avez simulé la perte de /dev/sda, remettez le nouveau disque à la place de /dev/sda et connectez le nouveau disque en tant que /dev/sdb selon le cas. Redémarrez la machine ; le système doit démarrer normalement.
Exécutez ensuite :
cat /proc/mdstat
Vous devriez voir un ensemble RAID dégradé, par exemple :
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
200704 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
5036288 blocks [2/1] [U_]
unused devices:
[root@server1 ~]#
La sortie de fdisk -l montre que /dev/sdb n’a pas de table de partitions valide :
[root@server1 ~]# fdisk -l
Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0008b885
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 fd Linux raid autodetect
/dev/sda2 26 652 5036377+ fd Linux raid autodetect
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
... (sortie tronquée pour lisibilité)
[root@server1 ~]#
Copier la table de partitions
Copiez la table de partitions de /dev/sda vers /dev/sdb :
sfdisk -d /dev/sda | sfdisk /dev/sdb
Si vous obtenez une erreur relative à la signature msdos, réessayez avec –force :
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Exemple de sortie :
[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 401624 401562 fd Linux raid autodetect
/dev/sdb2 401625 10474379 10072755 fd Linux raid autodetect
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table
Re-reading the partition table ...
[root@server1 ~]#
Important : assurez-vous que le disque de destination (/dev/sdb) est au moins aussi grand que l’original (/dev/sda). Sinon la copie échouera ou les partitions seront tronquées.
Nettoyer les superblocs RAID et réintégrer le disque
Effacez les restes d’anciennes métadonnées RAID sur les nouvelles partitions :
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
Ajoutez ensuite les partitions au RAID :
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
Vérifiez l’état de la reconstruction :
cat /proc/mdstat
Exemple pendant la reconstruction :
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[2] sda2[0]
5036288 blocks [2/1] [U_]
[=====>...............] recovery = 29.8% (1502656/5036288) finish=18.8min speed=3116K/sec
unused devices:
[root@server1 ~]#
Attendez que la synchronisation soit terminée. Lorsque tout est synchronisé, l’état doit montrer [UU] pour chaque miroir :
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
5036288 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
Installer GRUB sur les deux disques
Lancez grub et installez le chargeur d’amorçage sur les deux disques afin de permettre le démarrage si l’un des disques tombe en panne :
grub
Dans l’invite grub, exécutez :
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Après cela, redémarrez et vérifiez que le système démarre correctement depuis chacun des disques (modifiez l’ordre de démarrage dans le BIOS/UEFI si nécessaire).
Critères de réussite
- mdadm montre tous les disques synchronisés avec [UU].
- fdisk -l montre la table de partitions copiée sur le nouveau disque.
- Le système démarre si l’on retire (ou remplace) l’un des disques.
- GRUB est installé sur les deux disques.
Conseils et dépannage
- Disk trop petit : vérifiez les tailles avec lsblk ou fdisk -l avant de copier. Si le disque de remplacement est plus petit, utilisez un disque de plus grande capacité.
- Erreur msdos signature : sfdisk –force peut fonctionner. Si vous utilisez GPT, préférez sgdisk pour copier la table de partitions : sgdisk –backup=table /dev/sda ; sgdisk –load-backup=table /dev/sdb.
- Si la reconstruction tourne très lentement : vérifiez /proc/sys/dev/raid/speed_limit_min et speed_limit_max, et la charge système.
- Si des particules RAID restent, utilisez mdadm –examine /dev/sdb1 pour inspecter les superblocs.
- Vérifiez les logs (dmesg, /var/log/messages ou journalctl) pour les erreurs disque SMART ou contrôleur.
Important : ne changez pas la table de partitions d’un disque encore présent dans un ensemble RAID actif sans d’abord retirer proprement le disque ou marquer les partitions comme failed/removed.
Récapitulatif rapide (cheat sheet)
- Simuler la panne : mdadm –manage –fail + –remove
- Copier la table : sfdisk -d /dev/sda | sfdisk /dev/sdb
- Effacer superblocks : mdadm –zero-superblock /dev/sdb1
- Ajouter : mdadm -a /dev/md0 /dev/sdb1
- Vérifier : cat /proc/mdstat
- Installer GRUB : grub -> setup (hd0) et setup (hd1)
Checklist opérateur
- Vérifier la taille des disques (lsblk, fdisk -l)
- Simuler/retirer le disque défaillant
- Copier la table de partitions
- Zero-superblock sur les nouvelles partitions
- Ajouter au RAID et surveiller la reconstruction
- Installer GRUB sur les deux disques
- Tester le démarrage en retirant un disque
Liens utiles
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Fedora: http://fedoraproject.org
Résumé
Vous savez maintenant simuler une panne de disque, copier une table de partitions, nettoyer des superblocs RAID, réintégrer un disque dans un miroir RAID1 et installer GRUB sur les deux disques pour assurer le démarrage redondant. En cas de problème, vérifiez les tailles de disque, les logs et utilisez les outils adaptés (sgdisk pour GPT).
Matériaux similaires

Utiliser la NFC sur iPhone — guide pratique

Accélérer votre iPhone : astuces et checklist

Bloquer des applications sur iPhone

Voir les publications aimées sur Instagram

Choisir le meilleur mini PC : guide pratique
