Linux : gestion des superblocs RAID logiciel

Linux : gestion des superblocs RAID logiciel

Un superbloc RAID permet au système d’identifier une partition RAID et de savoir à quel ensemble RAID elle est rattachée. Cependant, rien n’empêche une même partition d’avoir plusieurs superblocs RAID. Ce qui peut poser des problèmes lorsque le système tente d’identifier et d’assembler les volumes RAID.

Vérifier si un superbloc RAID est présent sur un disque

Il peut y avoir plusieurs superblocs sur un même disque. mdadm utilisera le premier superbloc trouvé, mais pas forcément le bon.

La commande suivant recherche un superbloc sur le disque, quelqu’en soit la version :

# MON_DISQUE="/dev/sda1"
# mdadm -E "${MON_DISQUE}"

Cette commande n’indiquera toujours qu’un seul superbloc, même si plusieurs sont présents sur le disque !

Pour vérifier si plusieurs superblocs sont présents, il suffit d’indiquer à mdadm la version du superbloc recherché (avec -e version, où « version » est la version du superbloc recherché : « 0 » pour 0.90, « 1 », « 1.1 » ou « 1.2 »). Pour réaliser une recherche exhaustive, il faut donc utiliser :

# MON_DISQUE="/dev/sda1"
# mdadm -E -e 0 "${MON_DISQUE}"
# mdadm -E -e 1 "${MON_DISQUE}"
# mdadm -E -e 1.1 "${MON_DISQUE}"
# mdadm -E -e 1.2 "${MON_DISQUE}"

Effacer un superbloc RAID

Attention ! L’effacement des superblocs est une opération dangereuse.

Pour effacer un superbloc, il faut également indiquer la version du superbloc à effacer (avec l’option -e), sans quoi ce n’est pas forcément le superbloc voulu qui sera supprimé. Par exemple, pour effacer un superbloc en version 0.90 :

# MON_DISQUE="/dev/sda1"
# mdadm --zero-superblock -e 0 "${MON_DISQUE}"

Si le superbloc est en mauvais état, il peut être nécessaire d’utiliser l’option --force pour forcer la suppression.

Références

  1. https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

Licence : CC-BY