Gestion avancée de fichiers sous Linux : réparation système et traitement de gros fichiers

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 :

  1. 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
    
  2. 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
    
  3. Accepter les corrections proposées — répondre « y » ou utiliser l'option -y pour une correction automatique.

  4. 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

  1. 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_
  2. Transférer les segments de manière fiablersync est recommandé pour sa reprise sur erreur : ``` rsync --partial --progress fragment_* utilisateur@192.168.1.50:/data/
  3. 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

  1. 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.
  2. Utiliser cp pour des gros fichiers — cp ne permet pas la reprise en cas d'interruption. Préférer rsync --partial pour copier ou transférer de gros volumes avec possibilité de reprise.
  3. 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/d pour distinguer fichiers et répertoires.

Étiquettes: Linux fsck xfs_repair split cat

Publié le 3 juin à 02h04