Aller au contenu

Gestion de l'espace disque sous Linux

Mise à jour :

Sur Linux, une bonne gestion de l’espace disque est essentielle pour assurer la stabilité, la performance et la sécurité du système. Un disque saturé peut entraîner des ralentissements, des erreurs critiques ou des pertes de données. Surveiller régulièrement l’utilisation du stockage, détecter les fichiers encombrants et savoir redimensionner les partitions sont des compétences indispensables pour tout administrateur système.

Pourquoi surveiller l’espace disque sous Linux

La surveillance régulière de l’espace disque est indispensable pour maintenir un système Linux en état de fonctionnement optimal. Un disque plein ou saturé peut rapidement entraîner des conséquences graves, aussi bien sur un poste personnel que sur un serveur en production.

Éviter les pannes système

Sous Linux, de nombreux services critiques dépendent d’un espace disque disponible minimal :

  • Le serveur SSH peut refuser de nouvelles connexions si /var ou /tmp est plein.
  • Les bases de données (MySQL, PostgreSQL) peuvent s’arrêter brutalement faute d’espace pour écrire.
  • Les systèmes de fichiers peuvent passer en mode lecture seule pour protéger l’intégrité des données.

Préserver les performances

Un disque saturé peut provoquer :

  • Des ralentissements du système dus à l’absence d’espace pour les fichiers temporaires.
  • Un allongement du temps de réponse des applications.
  • Une dégradation progressive du fonctionnement général.

Anticiper les besoins d’extension

La surveillance permet de :

  • Planifier l’ajout de nouveaux disques ou l’agrandissement des partitions.
  • Ajuster la stratégie de sauvegarde et d’archivage.
  • Identifier les volumes nécessitant une réorganisation ou un nettoyage.

Détecter les anomalies

Une consommation d’espace disque anormalement rapide peut signaler :

  • Un processus anormal ou mal configuré générant des logs excessifs.
  • Une attaque (flood de fichiers, ransomwares).
  • Une fuite de fichiers temporaires non nettoyés.

Surveiller l’utilisation du disque avec df

La commande df (disk free) est l’outil de base pour surveiller l’utilisation de l’espace disque sous Linux. Elle fournit un résumé clair de l’espace occupé et disponible sur chaque système de fichiers monté.

Présentation de la commande df

Pour afficher l’espace disque de manière lisible, utilisez l’option -h (human-readable) :

Terminal window
df -h

Exemple de sortie :

Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 20G 28G 42% /
/dev/sda3 449G 30G 397G 7% /home

Interpréter les colonnes

  • Filesystem : périphérique ou partition.
  • Size : taille totale du système de fichiers.
  • Used : espace utilisé.
  • Avail : espace encore disponible.
  • Use% : pourcentage d’utilisation.
  • Mounted on : point de montage dans l’arborescence.

Cette commande permet de repérer immédiatement :

  • Les partitions proches de la saturation.
  • L’espace libre restant.
  • Les volumes temporairement montés comme des disques USB.

Astuce : pour se concentrer uniquement sur les systèmes de fichiers physiques, sans afficher les systèmes virtuels (comme tmpfs), utilisez :

Terminal window
df -hT -x tmpfs -x devtmpfs

Analyser l’utilisation détaillée avec du

Pour aller au-delà de la vision globale offerte par df, la commande du (disk usage) permet d’analyser en détail l’espace utilisé par les fichiers et dossiers sous Linux. Elle est particulièrement utile pour identifier rapidement les répertoires qui consomment beaucoup de place.

Présentation de la commande du

La commande de base pour afficher l’espace utilisé par un dossier est :

Terminal window
du -h /chemin/vers/dossier

Explication :

  • -h : rend les tailles lisibles (Ko, Mo, Go).

Chaque sous-dossier listé affiche sa taille cumulée, ce qui permet de repérer les emplacements volumineux.

Afficher uniquement le total utilisé

Pour obtenir uniquement la taille totale d’un dossier sans afficher chaque sous-dossier :

Terminal window
du -sh /chemin/vers/dossier
  • -s : résumé sur une seule ligne.
  • -h : format lisible.

Exemple pratique :

Terminal window
du -sh /var

Lister et trier les sous-dossiers selon leur taille

Pour analyser rapidement quel sous-dossier occupe le plus d’espace :

Terminal window
du -h --max-depth=1 /chemin | sort -h

Explication :

  • --max-depth=1 : affiche uniquement les dossiers de premier niveau.
  • sort -h : trie les résultats par taille de manière lisible.

Exemple :

Terminal window
du -h --max-depth=1 /home | sort -h

Cela permet de localiser les utilisateurs ou les projets qui saturent /home.

Utiliser du régulièrement donne une vision précise de comment l’espace disque est consommé, facilitant ainsi les opérations de nettoyage ou de réorganisation des données.

Explorer l’espace disque avec ncdu

Pour une analyse plus interactive et visuelle de l’espace disque sous Linux, l’outil ncdu (NCurses Disk Usage) est une excellente alternative à la commande du. Il permet de naviguer facilement dans les répertoires et de repérer rapidement les fichiers ou dossiers volumineux.

Présentation rapide de ncdu

ncdu combine la puissance de du avec une interface en mode texte qui rend l’exploration de l’espace disque plus intuitive :

  • Affiche les tailles triées automatiquement.
  • Permet de se déplacer dans l’arborescence.
  • Offre la possibilité de supprimer directement des fichiers/dossiers.

Installation de ncdu

Pour installer ncdu sur une distribution Debian/Ubuntu :

Terminal window
sudo apt install ncdu

Sur Fedora/CentOS :

Terminal window
sudo dnf install ncdu

Sur Arch Linux :

Terminal window
sudo pacman -S ncdu

Utilisation de base

Lancer l’analyse d’un répertoire spécifique :

Terminal window
ncdu /chemin

Exemple :

Terminal window
ncdu /home

Une fois ouvert, utilisez les flèches haut/bas pour naviguer, Entrée pour entrer dans un répertoire, et d pour supprimer un fichier ou dossier.

Astuce : pour scanner tout le système (attention, nécessite les droits root) :

Terminal window
sudo ncdu /

Avantage de l’analyse interactive

  • Localiser rapidement les zones critiques.
  • Décider immédiatement quoi nettoyer.
  • Gagner du temps par rapport à l’analyse classique par du et sort.

ncdu est ainsi un outil incontournable pour les administrateurs qui veulent maintenir un système propre et optimiser l’utilisation de l’espace disque sous Linux.

Détecter les fichiers ouverts sur un disque plein

Il peut arriver que même après avoir supprimé des fichiers, l’espace disque ne soit pas libéré sous Linux. Ce phénomène est souvent dû à des fichiers supprimés qui restent ouverts par des processus en cours d’exécution.

Explication du problème

Lorsque vous supprimez un fichier en cours d’utilisation par un programme :

  • Le fichier disparaît de l’arborescence.
  • Mais l’espace occupé n’est pas libéré tant que le processus qui utilise le fichier n’est pas fermé.

Cela peut conduire à une situation où l’espace disque semble bloqué même après un nettoyage.

Utilisation de lsof pour détecter les fichiers supprimés

Pour identifier les fichiers supprimés encore ouverts :

Terminal window
sudo lsof | grep deleted

Explication :

  • lsof liste tous les fichiers ouverts sur le système.
  • Le filtre grep deleted affiche ceux qui ont été supprimés mais qui restent accrochés par des processus.

Exemple de sortie :

bash 1234 user txt REG 8,1 1024000 1234567 /tmp/largefile (deleted)

Vous pouvez voir :

  • Le nom du programme (ex : bash).
  • Le PID du processus (1234).
  • Le chemin du fichier supprimé.

Libérer l’espace occupé

Deux options pour libérer l’espace :

  • Fermer proprement le programme concerné.
  • Tuer le processus si nécessaire :
Terminal window
sudo kill 1234

Après l’arrêt du processus, l’espace disque sera automatiquement récupéré.

Attention : toujours analyser les conséquences avant de tuer un processus, notamment sur un serveur en production.

Redimensionner une partition sous Linux

Dans certaines situations, il peut être nécessaire de redimensionner une partition sous Linux, que ce soit pour agrandir ou réduire un volume afin de mieux utiliser l’espace disque disponible. Ce processus peut être délicat et nécessite une attention particulière pour éviter toute perte de données. Ce chapitre explique les étapes nécessaires pour redimensionner une partition, en détaillant les outils et les précautions à prendre.

Prérequis avant redimensionnement

Avant de procéder à la modification des partitions, voici les éléments essentiels à vérifier et à préparer :

  • Sauvegarde et précautions : Il est impératif de réaliser une sauvegarde complète des données contenues sur la partition avant toute manipulation. En cas de problème, vous pourrez restaurer vos données.

  • Démontage de la partition : Avant de redimensionner une partition, il est généralement nécessaire de démonter la partition pour éviter toute modification ou corruption de données pendant le processus. Vous pouvez démonter une partition avec la commande umount :

    Terminal window
    sudo umount /dev/sdXn

    Remplacez /dev/sdXn par le chemin de votre partition.

  • Vérification du système de fichiers : Avant de redimensionner une partition, vérifiez l’intégrité du système de fichiers avec fsck pour éviter tout risque de perte de données.

    Terminal window
    sudo fsck /dev/sdXn

Redimensionner une partition : méthode générale

Voici les étapes principales pour redimensionner une partition sous Linux :

  1. Démonter la partition : Comme mentionné précédemment, démontez la partition que vous souhaitez redimensionner.

  2. Redimensionner la partition avec parted ou gparted :

    • Avec parted : Utilisez la commande suivante pour redimensionner la partition :

      Terminal window
      sudo parted /dev/sdX

      Une fois dans l’interface parted, utilisez la commande resize pour ajuster la taille de la partition.

    • Avec gparted (interface graphique) : Si vous préférez une interface graphique, vous pouvez utiliser gparted, un outil puissant permettant de gérer les partitions. Lancez gparted avec la commande suivante :

      Terminal window
      sudo gparted

      Sélectionnez la partition à redimensionner, puis utilisez l’option de redimensionnement dans l’interface graphique.

  3. Redimensionner le système de fichiers : Une fois la partition redimensionnée, vous devrez ajuster le système de fichiers pour qu’il s’adapte à la nouvelle taille de la partition. Cette étape peut être réalisée avec des outils comme resize2fs pour les systèmes de fichiers ext4 ou xfs_growfs pour XFS.

Agrandir une partition EXT4

Pour agrandir une partition de type EXT4, la commande à utiliser après avoir redimensionné la partition est resize2fs. Voici la procédure à suivre :

  1. Redimensionner la partition à l’aide de parted ou gparted, comme expliqué précédemment.

  2. Ajuster le système de fichiers avec resize2fs :

    Terminal window
    sudo resize2fs /dev/sdXn

    Cette commande permet au système de fichiers de s’ajuster à la nouvelle taille de la partition.

  3. Vérifier l’intégrité du système de fichiers avec fsck :

    Terminal window
    sudo fsck /dev/sdXn

Réduire une partition EXT4

Réduire une partition est une opération plus délicate et risquée. Voici les étapes à suivre pour réduire une partition EXT4 en toute sécurité :

  1. Sauvegarder les données : Avant de commencer, il est crucial de faire une sauvegarde complète de la partition.

  2. Redimensionner le système de fichiers : Utilisez resize2fs pour réduire le système de fichiers avant de réduire la partition. Cette commande réduira la taille du système de fichiers sans affecter les données :

    Terminal window
    sudo resize2fs /dev/sdXn 10G

    Ici, 10G représente la taille souhaitée du système de fichiers.

  3. Redimensionner la partition : Une fois le système de fichiers réduit, vous pouvez utiliser parted ou gparted pour redimensionner la partition physique.

    Exemple avec parted :

    Terminal window
    sudo parted /dev/sdX

    Puis utilisez la commande resize pour ajuster la taille de la partition.

  4. Vérification : Une fois le processus terminé, vérifiez à nouveau l’intégrité du système de fichiers avec fsck.

Agrandir une partition XFS

Les partitions de type XFS ont une particularité : elles ne peuvent être réduites, mais vous pouvez les agrandir. Voici la procédure pour agrandir une partition XFS :

  1. Redimensionner la partition : Utilisez parted ou gparted pour augmenter la taille de la partition.

  2. Ajuster le système de fichiers avec xfs_growfs : Après avoir redimensionné la partition, vous pouvez agrandir le système de fichiers avec la commande suivante :

    Terminal window
    sudo xfs_growfs /dev/sdXn

    Cette commande agrandira le système de fichiers pour utiliser tout l’espace disponible sur la partition.

Cas particulier : gérer l’espace avec LVM

LVM (Logical Volume Management) offre une grande flexibilité pour gérer l’espace disque sous Linux. Si vous utilisez LVM, vous pouvez redimensionner les volumes logiques de manière dynamique sans avoir à redimensionner les partitions physiques.

  • Agrandir un volume logique : Utilisez la commande lvextend pour augmenter la taille d’un volume logique.

    Terminal window
    sudo lvextend -L +10G /dev/volume_group/volume_name

    Cette commande ajoute 10 Go au volume logique spécifié.

  • Redimensionner le système de fichiers : Après avoir agrandi le volume logique, vous devrez redimensionner le système de fichiers avec resize2fs (pour ext4) ou xfs_growfs (pour XFS).

    Terminal window
    sudo resize2fs /dev/volume_group/volume_name

Conclusion

Une gestion efficace de l’espace disque sous Linux est essentielle pour maintenir la stabilité et la performance du système. En utilisant des outils comme df, du, et ncdu, vous pouvez surveiller, analyser et libérer de l’espace de manière proactive. Le redimensionnement des partitions, qu’il s’agisse d’EXT4 ou de XFS, doit être effectué avec précaution, en prenant soin de sauvegarder les données et de vérifier le système de fichiers. En appliquant ces bonnes pratiques, vous garantissez un environnement Linux optimal, stable et sécurisé.