Réparation du système de fichiers avec fsck/xfs_repair
Les coupures de courant, les déconnexions de disque ou les arrêts brusques peuvent corrompre un système de fichiers Linux (ext4, xfs), entraînant des erreurs comme « bad superblock » ou des inodes endommagés. Les utilitaires fsck (pour ext4) et xfs_repair (pour xfs) permettent de récupérer ces dégâts logiques.
Identifier le type de système de fichiers
Avant toute réparation, vérifiez le format de la partition concernée pour utiliser l'outil approprié :
df -T /mnt/chemin
# Exemple de sortie : /dev/sda2 ext4 → utiliser fsck
# Si la sortie indique xfs → utiliser xfs_repair
Réparer une partition ext4 corrompue
Supposons que le montage de /dev/sdb2 sur /mnt/stockage échoue avec un message d'erreur sur le superbloc. Voici les étapes :
-
S'assurer que la partition n'est pas montée — condition indispensable pour
fsck.# Vérifier l'état de montage mount | grep /dev/sdb2 # Démonter la partition (avec force si nécessaire) sudo umount /mnt/stockage # En cas de « device is busy » : sudo umount -l /mnt/stockage -
Restaurer à partir d'un superbloc de sauvegarde — ext4 en conserve plusieurs copies.
# Lister les superblocs de secours sudo dumpe2fs /dev/sdb2 | grep -i superblock # Lancer la réparation avec un superbloc de secours (ex: bloc 8193) sudo fsck.ext4 -b 8193 /dev/sdb2 -
Accepter les corrections proposées — répondre « y » ou utiliser l'option
-ypour une correction automatique. -
Vérifier la restauration — tenter de remonter la partition et contrôler les fichiers.
sudo mount /dev/sdb2 /mnt/stockage ls /mnt/stockage
Corriger une partition xfs
L'outil dédié à XFS est xfs_repair. La procédure est plus directe :
# Démonter la partition
sudo umount /mnt/serveur
# Lancer la vérification et la réparation
sudo xfs_repair -v /dev/sdc3
# Remonter
sudo mount /dev/sdc3 /mnt/serveur
Traitement des fichiers volumineux : découpage et reconstruction
Transférer un fichier de plusieurs dizaines de Go peut échouer à cause d'une coupure réseau. Découpez-le en segments plus petits avec split, transférez-les, puis reconstituez le fichier original sur la destination.
Découpe et assemblage avec split et cat
| Outil | Paramètre | Fonction | Exemple |
|---|---|---|---|
split |
-b |
Couper selon la taille | split -b 2G archive.tar.gz segment_ |
split |
-l |
Couper selon le nombre de lignes | split -l 50000 journal.txt journal_part_ |
cat |
— | Assembler les segments dans l'ordre | cat segment_* > archive.tar.gz |
Procédure complète de transfert
- Découper le fichier source : ```
Créer des segments de 2 Go avec un suffixe numérique
split -b 2G -d fichier_volumineux.bin fragment_ - Transférer les segments de manière fiable —
rsyncest recommandé pour sa reprise sur erreur : ``` rsync --partial --progress fragment_* utilisateur@192.168.1.50:/data/ - Reconstituer le fichier sur la machine distante : ```
cd /data/
cat fragment_* > fichier_reconstitue.bin
Pour des fichiers structurés par champs (comme des listes séparées par des espaces), join permet de fusionner deux fichiers sur une clé commune.
Gestion des permissions en masse avec find
Pour appliquer des permissions cohérentes sur une arborescence complète (ex. un site web), il est plus sûr d'utiliser find pour cibler uniquement les répertoires ou les fichiers, plutôt que chmod -R sur l'ensemble.
Comprendre les modes courants
- 755 (
rwxr-xr-x) : accès total pour le propriétaire, exécution et lecture pour les autres. Adapté aux répertoires. - 644 (
rw-r--r--) : lecture/écriture pour le propriétaire, lecture seule pour les autres. Adapté aux fichiers de données.
Application ciblée sur /srv/www
# Attribuer 755 à tous les répertoires
sudo find /srv/www -type d -exec chmod 755 {} \;
# Attribuer 644 à tous les fichiers
sudo find /srv/www -type f -exec chmod 644 {} \;
# Changer le propriétaire et le groupe pour le service web
sudo chown -R wwwrun:www /srv/www
Pour anticiper les effets d'une commande, prévisualisez les cibles avec -exec echo {} \;.
Pièges courants et solutions
- Exécuter fsck/xfs_repair sur une partition montée — Cela corrompt irrémédiablement les données. Solution : toujours démonter d'abord. Pour la partition racine, démarrer en mode mono-utilisateur ou depuis un live CD.
- Utiliser cp pour des gros fichiers — cp ne permet pas la reprise en cas d'interruption. Préférer
rsync --partialpour copier ou transférer de gros volumes avec possibilité de reprise. - Appliquer chmod -R 755 à tout un arbre — Cela accorde des droits d'exécution sur tous les fichiers, ce qui est inutile et potentiellement dangereux. Utiliser
find -type f/dpour distinguer fichiers et répertoires.