Problème de SuperBlock: réparer une partition corrompue

partition superblock

Aujourd'hui, une des partitions sur mon serveur Linux a été marquée comme étant corrompue. L'erreur indique l'impossibilité de lire un superblock:

/dev/sda3: Input/output error
mount: /dev/sda3: can't read superblock

Ce genre d'erreur est fréquente sur les partitions de type Ext3 mais rassurez vous, il est possible de réparer la partition.

Les erreurs de SuperBlock sont elles réparables ?

Les erreurs dûes aux superblocks sont facilement récupérables car le système de fichier Ext3 ne stocke pas les superblocks sur la partition elle-même. Celà permet ainsi de ne pas avoir des données corrompues sur la partition elle même.

Veuillez noter qu'avant toute récupération ou réparation d'une partition, il faut que celle-ci soit démontée (unmounted). Une solution simple pour être sûr que la partition soit démontée est de démarrer votre machine est "Mode Récupération" (Rescue Mode).

SuperBlocks temporaires pour monter la partition

La première étape consiste à localiser le superblock de la partition (dans mon cas /dev/sda3)

dumpe2fs /dev/sda3 | grep superblock

Ce qui retourne:

Primary superblock at 0, Group descriptors at 1-6
Backup superblock at 32768, Group descriptors at 32769-32774
Backup superblock at 98304, Group descriptors at 98305-98310
Backup superblock at 163840, Group descriptors at 163841-163846
Backup superblock at 229376, Group descriptors at 229377-229382
Backup superblock at 294912, Group descriptors at 294913-294918
Backup superblock at 819200, Group descriptors at 819201-819206
Backup superblock at 884736, Group descriptors at 884737-884742
Backup superblock at 1605632, Group descriptors at 1605633-1605638
Backup superblock at 2654208, Group descriptors at 2654209-2654214
Backup superblock at 4096000, Group descriptors at 4096001-4096006
Backup superblock at 7962624, Group descriptors at 7962625-7962630
Backup superblock at 11239424, Group descriptors at 11239425-11239430
Backup superblock at 20480000, Group descriptors at 20480001-20480006
Backup superblock at 23887872, Group descriptors at 23887873-23887878

En lisant la sortie, on note qu'il faut réparer le système de fichier en utilisant un superblock temporaire #32768. On lance donc la commande:

fsck -b 32768 /dev/sda3

Ce qui retourne:

fsck 1.40.2 (12-Jul-2007)
e2fsck 1.40.2 (12-Jul-2007)
/dev/sda3 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #241 (32254, counted=32253).
Fix? yes
Free blocks count wrong for group #362 (32254, counted=32248).
Fix? yes
Free blocks count wrong for group #368 (32254, counted=27774).
Fix? yes
..........
/dev/sda3: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda3: 59586/30539776 files (0.6% non-contiguous), 3604682/61059048 blocks

Maintenant on peut remonter la partition via la commande:

mount /dev/sda3 /webbackup

Veuillez noter que l'on aurait pu utiliser la commande suivantes:

mount sb=32768 /dev/sda3 /mnt

Pour être sûr que votre partition est saine et correctement montée, il suffit d'essayer de créer un dossier ou bien copier un fichier:

cd /webbackup
mkdir test
ls -l
cp file /home/jhd/test.txt

Dans mon cas j'ai eu la chance que ce soit ma partition de backup qui soit affecté par un superblock corrompu. Pensez à toujours sauvegarder vos données sur un média externe :-)

Leave a Reply

Your email address will not be published. Required fields are marked *