Comment résoudre l'erreur "No Space Left on Device" sur Linux

Publié 27 août 2024

Problème : Erreur "Espace insuffisant sur le périphérique" sous Linux

L'erreur "Espace insuffisant sur le périphérique" sous Linux survient lorsqu'un système manque d'espace de stockage. Ce problème peut vous empêcher d'enregistrer des fichiers, d'installer des logiciels ou d'effectuer d'autres tâches nécessitant de l'espace disque. Il peut entraîner une instabilité du système et des performances ralenties, ce qui en fait un problème pour les utilisateurs de Linux.

Diagnostiquer le problème : Vérification de l'espace disque et des inodes

Utilisation de la commande df pour vérifier l'espace disque

La commande df vérifie l'utilisation de l'espace disque sous Linux. Elle affiche des informations sur l'espace utilisé et disponible sur les systèmes de fichiers. Pour utiliser df, ouvrez un terminal et tapez 'df' avec les options souhaitées.

Lorsque vous exécutez df, elle affiche un tableau avec des colonnes pour le système de fichiers, la taille totale, l'espace utilisé, l'espace disponible et le point de montage. L'option '-h' rend la sortie plus lisible en affichant les tailles en Ko, Mo ou Go.

Examiner l'utilisation des inodes avec df -i

Les inodes stockent les données sur les fichiers dans les systèmes de fichiers Linux. Chaque fichier utilise un inode, quelle que soit sa taille. Pour vérifier l'utilisation des inodes, utilisez la commande 'df -i'.

Cette commande affiche un tableau similaire à la sortie df standard, mais avec des informations sur les inodes au lieu de l'espace disque. Les colonnes incluent le nombre total d'inodes, les inodes utilisés, les inodes libres et le pourcentage d'inodes utilisés. Si vous voyez un pourcentage élevé d'inodes utilisés, même avec de l'espace disque libre, vous pourriez avoir un problème d'inodes.

Méthodes pour résoudre l'erreur "Espace insuffisant sur le périphérique"

Libérer de l'espace disque sous Linux

Pour libérer de l'espace disque sous Linux, trouvez les fichiers et répertoires volumineux. Utilisez la commande 'du' avec des options comme '-h' pour des tailles lisibles et '-s' pour un résumé. Par exemple, 'du -sh /chemin/vers/repertoire/*' affiche la taille de chaque élément dans un répertoire.

Après avoir trouvé les fichiers et répertoires volumineux, supprimez les données inutiles. Effacez les anciens fichiers journaux, les fichiers temporaires et les données en cache. Nettoyez les caches du gestionnaire de paquets avec des commandes comme 'apt clean' pour les systèmes basés sur Debian ou 'yum clean all' pour les systèmes basés sur Red Hat. Supprimez les anciens noyaux et les applications inutilisées pour créer plus d'espace.

Gérer l'épuisement des inodes

Face à l'épuisement des inodes, concentrez-vous sur la suppression des petits fichiers. De nombreux petits fichiers peuvent épuiser les inodes même s'ils n'occupent pas beaucoup d'espace disque. Utilisez 'find' pour localiser et supprimer les petits fichiers inutiles. Par exemple, 'find /chemin -type f -size -1M -delete' supprime les fichiers de moins d'1 Mo.

Il est possible d'augmenter le nombre d'inodes, mais cela nécessite de reformater le système de fichiers. C'est une dernière option à effectuer avec précaution, car elle implique de sauvegarder les données, de recréer le système de fichiers avec plus d'inodes et de restaurer les données.

Gérer les fichiers supprimés mais toujours ouverts

Parfois, des fichiers supprimés par le système sont encore maintenus ouverts par des processus en cours, occupant de l'espace. Utilisez la commande 'lsof' pour trouver ces fichiers. Exécutez 'lsof | grep deleted' pour lister les fichiers supprimés encore utilisés.

Pour libérer les descripteurs de fichiers, redémarrez les processus utilisant ces fichiers. Si c'est sans danger, vous pouvez aussi redémarrer le système pour fermer tous les descripteurs de fichiers. Pour les systèmes critiques, identifiez le processus spécifique maintenant le fichier ouvert et redémarrez uniquement ce processus pour minimiser les temps d'arrêt.

Solutions alternatives pour les problèmes de stockage

Agrandir la taille du système de fichiers ou de la partition

Vous pouvez ajouter de nouveaux disques ou partitions à votre système Linux lorsque vous avez besoin de plus d'espace de stockage. Pour ajouter un nouveau disque, connectez-le physiquement, puis utilisez 'fdisk' ou 'parted' pour créer des partitions. Après avoir créé les partitions, formatez-les avec un système de fichiers en utilisant 'mkfs' et montez-les pour les rendre accessibles.

Vous pouvez également redimensionner les partitions existantes. Utilisez des outils comme 'gparted' (graphique) ou 'parted' (ligne de commande). Sauvegardez toujours vos données avant de redimensionner. Pour les partitions non-root, démontez-les d'abord. Pour les partitions root, utilisez un CD ou une clé USB live pour effectuer l'opération de redimensionnement.

Utiliser un stockage en réseau (NAS)

Le stockage en réseau (NAS) étend le stockage via un réseau. Les systèmes NAS fournissent de grandes quantités de stockage accessibles par plusieurs appareils. Ils sont utiles pour le stockage centralisé de fichiers et les sauvegardes.

Pour monter un NAS sous Linux, utilisez des protocoles comme NFS ou SMB. Pour NFS, utilisez la commande 'mount' avec les détails du partage NFS. Pour les partages SMB, utilisez 'mount.cifs' ou ajoutez une entrée dans '/etc/fstab' pour un montage automatique au démarrage. Les systèmes NAS offrent de la flexibilité pour les besoins de stockage.

Mesures préventives pour éviter les futures erreurs "Espace insuffisant sur le périphérique"

Mettre en place une surveillance régulière de l'espace disque

Pour prévenir les erreurs "Espace insuffisant sur le périphérique", configurez des alertes pour l'utilisation de l'espace disque. Utilisez des outils comme Nagios ou Zabbix pour surveiller l'espace disque et envoyer des notifications lorsque l'utilisation atteint un certain niveau. Par exemple, configurez des alertes pour se déclencher lorsque l'utilisation du disque dépasse 80 %.

Les outils de surveillance montrent la santé du stockage de votre système. Des outils comme Glances ou Netdata donnent des vues en temps réel des tendances d'utilisation du disque. Ces outils peuvent vous aider à repérer les problèmes avant qu'ils ne deviennent critiques, vous permettant d'agir rapidement.

Optimiser l'utilisation du stockage sous Linux

Adoptez de bonnes pratiques pour la gestion du stockage sous Linux. Examinez et supprimez régulièrement les fichiers inutiles, comme les anciennes sauvegardes ou les fichiers temporaires. Utilisez des quotas pour limiter l'utilisation de l'espace disque par utilisateur. Configurez des tâches de nettoyage automatique avec des jobs cron pour supprimer les anciens journaux ou fichiers cache.

La compression peut économiser de l'espace. Utilisez des outils comme gzip ou bzip2 pour les fichiers que vous utilisez rarement. Pour les bases de données, essayez les fonctionnalités de compression du système de base de données. Les systèmes de fichiers comme Btrfs ou ZFS ont une compression intégrée, qui peut économiser de l'espace sans travail supplémentaire.