RAID Debian · 6 min read · Nov 14, 2025

Étendre un RAID logiciel sur Debian en migrant vers de nouveaux disques durs plus grands

La configuration : deux disques physiques d’un RAID 1 (miroir) seront remplacés par deux disques plus capacitaires, nous effectuerons un remplacement “à chaud” directement depuis le système d’exploitation en cours d’exécution, sans avoir besoin de démarrer à partir d’un support de démarrage externe. Ce guide a été testé sur les distributions Debian 6, 7, 8, à la fois en 32 et 64 bits.

Nous supposons que les deux disques sont partitionnés avec une partition racine et une partition swap et que ces deux partitions constituent les deux dispositifs RAID md0 et md1 :

  • La partition sda1 et sdb1 qui composent le volume md0 (racine)
  • Les partitions sda2 et sdb2 qui composent le volume md1 (swap)

Tout d’abord, faites une sauvegarde de toutes vos données, même si le guide a été testé plusieurs fois, la malchance est toujours là… Nous proposons (à mon avis, la meilleure solution) pour un remplacement, nous déconnectons l’un des deux anciens disques avec la machine éteinte, puis connectons un nouveau disque temporaire, puis resynchronisons, ainsi nous aurons toujours le RAID fonctionnant et un seul disque (avec RAID en mode dégradé) et vous pouvez toujours recréer un RAID fonctionnel si quelque chose ne fonctionne pas. Pour ce faire, tapez simplement ces commandes après avoir remplacé le disque complet par le disque vide :

sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty  
mdadm —zero-superblock /dev/hd empty  
mdadm —add /dev/md(raid) /dev/hd(empty)

Répétez les deux dernières lignes pour chaque RAID / partition sur le système

(par exemple :

mdadm -add /dev/md0 /dev/sdb1 

puis

mdadm -add /dev/md1 /dev/sdb2

etc..

De cette manière, nous avons forcé la table de partition du disque source vers la cible vide, puis ajouté cela au RAID.

Évidemment, vous devez attendre la fin du processus de reconstruction, surveillé par :

watch cat / pro / mdstat

(Et bien sûr CTRL + C pour quitter le processus)

Éteignez la machine à ce stade, nous ajoutons deux nouveaux disques, qui deviennent respectivement sdc et sdd, puis démarrez le serveur et exécutez la commande :

fdisk -l

Le résultat devrait ressembler à ceci :

Disque /dev/sda: ……MB , ………….Octets  
… têtes, …secteurs/piste , ….. cylindres  
Taille I/O (minimum/optimal) : 512 octets / 512 octets  
Disque : identifiant : ………..
Dispositif de démarrage Début Fin Blocs Id   Système
/dev/sda2        970           1044 602437+ fd   Linux raid autodetect
/dev/sda2            1 969 7783461 fd   Linux raid autodetect 
……
/dev/sdb1     *       1 969 7783461 fd   Linux raid autodetect 
/dev/sdb2            970        1044 602437+ fd   Linux raid autodetect 
……
Disque /dev/sdc: …Mb, …….Octets
……
Disque /dev/sdd: …Mb, …….Octets
……
Disque /dev/md0: …Mb, …….Octets
…...
Disque /dev/md1: …Mb, …….Octets

Maintenant, tapez :

fdisk /dev/sdc

nous créons une nouvelle partition avec la commande n,

nous sélectionnons p partition primaire,

nous sélectionnons le numéro de partition ( 1,2,3, etc …),

nous sélectionnons le cylindre de départ ( 1),

nous sélectionnons la taille de la partition primaire en tapant le symbole + suivi de la taille en Go et GB des lettres (par exemple : +480GB)

nous la rendons amorçable avec la commande a, en sélectionnant le même numéro de partition.

nous changeons l’ID de partition en “ fd “ (Linux Raid Autodetect) avec t, et en écrivant comme code hexadécimal, juste “ fd

Ensuite, nous répétons TOUTES les commandes pour la deuxième partition (la partition sera le swap).

Nous allons enregistrer les modifications avec w.

Évidemment, faites attention à la taille des partitions. La meilleure solution est de soustraire la taille actuelle du swap du total de l’espace libre pour créer la partition de travail avec l’espace le plus large possible.

Maintenant, nous allons effectuer exactement les mêmes opérations sur le disque SDD, en veillant à créer la même partition avec les mêmes tailles que nous avons utilisées précédemment.

À ce stade, nous faisons un échange entre le premier disque “plein” et le premier nouveau disque, ajoutant ce dernier comme un spare au RAID :

mdadm -add /dev/md0 /dev/sdc1

Ensuite, nous devrions vérifier la situation du disque RAID, cela devrait ressembler à ceci :

md0: raid actif 1 sdc1[S] sda1[2] sdb1[3]
 ………blocs super 1.2 [2/2] [UU]

Ensuite, nous remettons le disque d’origine :

mdadm -f /dev/md0 /dev/sda1

et le retirons du RAID :

mdadm -r /dev/md0 /dev/sda1

Maintenant, nous vérifions que la reconstruction a commencé automatiquement et attendons qu’elle soit terminée en surveillant à nouveau avec :

watch cat /proc/mdstat

(Et bien sûr CTRL + C pour quitter le processus)

À la fin, nous installons le chargeur de démarrage (grub) sur le nouveau disque (/ dev / sdc) :

grub-install /dev/sdc

Le même processus doit être répété pour chacune des partitions système :

mdadm -add /dev/md0 /dev/sdd1
mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

Et nous attendons à nouveau jusqu’à ce que la reconstruction soit terminée :

watch cat /proc/mdstat

(Et bien sûr CTRL + C pour quitter le processus)

Ensuite, faisons la même procédure pour la première partition swap des deux nouveaux disques :

mdadm -add /dev/md1 /dev/sdc2
mdadm -f /dev/md0 /dev/sda2
mdadm -r /dev/md0 /dev/sda2

Attendez à nouveau jusqu’à ce qu’elle ait terminé la reconstruction :

watch cat /proc/mdstat

(Et bien sûr CTRL + C pour quitter le processus)

Et le dernier disque :

mdadm -add /dev/md1 /dev/sdd2
mdadm -f /dev/md0 /dev/sdb2
mdadm -r /dev/md0 /dev/sdb2

Attendez à nouveau jusqu’à ce qu’elle ait terminé la reconstruction :

watch cat /proc/mdstat

(Et bien sûr CTRL + C pour quitter le processus)

À ce stade, réinstallez le chargeur de démarrage sur les deux disques :

grub-install /dev/sdc
grub-install /dev/sdd

À ce stade, nous nous retrouvons avec l’ancien disque expulsé du RAID, et les nouveaux disques sont installés et opérationnels. Mais avec l’espace utilisable en dessous du maximum autorisé par la partition

Ensuite, nous procédons à l’agrandissement de la partition et à sa vérification, comme d’habitude pour les deux volumes :

mdadm —grow —raid-devices=2 /dev/md0
mdadm -A —scan
mdadm —grow /dev/md0 —size=max
mdadm —examine —scan
e2fsck -f /dev(md0
resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1
mdadm -A —scan
mdadm —grow /dev/md1 —size=max
mdadm —examine —scan
e2fsck -f /dev/md1
resize2fs /dev/md1

Lorsque c’est terminé, éteignez le PC, déconnectez les anciens disques et redémarrez la machine.

Même si le redémarrage fonctionnait, nous reconstruisons le grub pour des raisons de sécurité puisque le lancement du nouveau disque aura pris le nom de l’ancien (sda et sdb) :

mv /boot/grub/device.map/boot/grub/device.map.old
grub-mkdevicemap
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb

Si vous voulez être absolument sûr que la nouvelle configuration RAID fonctionne, éteignez la machine, déconnectez l’un des nouveaux disques et redémarrez. Cela devrait démarrer sans problèmes. Ensuite, éteignez à nouveau, reconnectez le disque et démarrez. Vous pouvez utiliser cette commande pour vérifier l’état du RAID.

watch cat /proc/mdstat

(Et bien sûr CTRL + C pour quitter le processus)

Nous avons terminé le travail, nous célébrons.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.