Les 3 meilleures façons de corriger l'erreur «pas d'espace laissé sur l'appareil» dans Linux

Les 3 meilleures façons de corriger l'erreur «pas d'espace laissé sur l'appareil» dans Linux

Les erreurs sans cause claire sont les problèmes les plus irritants à traiter. Et bien que Linux soit généralement spécifique dans ses messages d'erreur, c'est l'une des rares fois où il laisse tomber la balle.

Obtenir une «erreur sans place sur l'appareil» explique très peu, surtout si votre lecteur est loin d'être complet. Pourquoi ce message d'erreur s'affiche-t-il? Pourquoi ne pouvez-vous pas créer de nouveaux fichiers malgré un espace suffisant sur le disque? Et surtout, comment le réparez-vous?

Table des matières

    Découvrons-le.

    1. Ne vous inquiétez pas de tous les messages refusés de l'autorisation - c'est ainsi qu'il traverse toutes les sous-répertoires du système. Selon la taille du lecteur, vous devrez peut-être le laisser en marche pendant un certain temps, car il passe par récursivement.
    1. Lorsque DU terminera la numérisation, il publiera une liste simple de répertoires à côté de leurs tailles. Par exemple, il s'agit de la sortie de la commande DU appliquée à un répertoire ordinaire.

    Nous allons maintenant utiliser DF pour voir la quantité d'espace libre disponible. La commande DF est beaucoup plus simple à utiliser car elle affiche uniquement les systèmes de fichiers montés et leurs statistiques d'utilisation. Encore une fois, nous utiliserons le drapeau -H pour rendre la sortie lisible humain.

    sudo df -h

    L'idée est de compter les résultats des commandes DU et DF. Tout écart pointe vers l'espace disque qui n'est pas disponible librement malgré le fait de ne pas être utilisé par aucun fichier ou dossier.

    Pourquoi Linux montre-t-il "Aucun espace laissé sur l'appareil"?

    Si vous voyez le message d'erreur «pas d'espace laissé sur l'appareil» malgré un espace libre suffisant sur votre disque, ce n'est pas le matériel qui est en faute. Déterminer la cause exacte de l'erreur peut prendre un peu de dépannage.

    • Fichier récemment supprimé: La raison la plus courante de voir cette erreur est un fichier récemment supprimé. Souvent, un fichier est supprimé pendant qu'un processus l'utilise toujours, en gardant l'espace réservé même si le fichier a déjà disparu.
    • Pas assez d'inodes: une autre cause fréquente n'est pas d'avoir assez d'inodes. Les inodes sont les pages d'index d'un système de fichiers UNIX, maintenant les métadonnées de chaque fichier sur le stockage. Cependant, les inodes ne sont pas illimité.
    • Échec du disque dur: alors bien sûr, il est possible que le disque dur échoue, et une grande partie de l'espace libre apparent est absorbé par les mauvaises secteurs. Étant donné que le système ne parvient pas à écrire de fichiers à ces emplacements, il lance une erreur.

    Correction 1: redémarrer les processus à l'aide de fichiers supprimés

    La cause la plus probable de l'erreur «pas d'espace laissé sur l'appareil» est un processus toujours en utilisant un fichier supprimé. Heureusement, la réparation de cette erreur est facile. Il vous suffit de redémarrer le processus pour libérer le stockage réservé.

    1. Pour trouver le processus problématique, vous devez utiliser les commandes LSOF et GREP. La commande LSOF vous donnera une liste de tous les fichiers ouverts utilisés par l'exécution de processus, et Grep peut réduire la sélection à celles qui sont supprimées. Entrez donc sudo lsof / | Grep supprimé où / est le répertoire de base et | un tuyau pour lier la sortie de LSOF à Grep.
    1. Vous pouvez maintenant redémarrer le processus affecté avec la commande sudo systemctl restart Service_name, où le nom du service est le nom du service qui s'est avéré dans la recherche.
    1. S'il y a plusieurs processus comme celui-ci ou si vous ne voulez tout simplement pas vous soucier de trouver des services spécifiques, vous pouvez simplement les réinitialiser avec la commande sudo systemctl daemon-reload. Cela régénère toutes les dépendances, en tenant compte des modifications du système de fichiers.

    Après cela, l'espace de stockage retenu par le processus devrait être à nouveau disponible, vous permettant d'écrire des fichiers sans avoir eu d'erreurs.

    Correction 2: Vérifiez les inodes

    Bien que chaque lecteur ait un grand nombre d'inodes, il est fini. Et si votre système est jonché d'un nombre incroyable de fichiers, il est possible d'atteindre cette limite avant d'épuiser la capacité de stockage du lecteur. C'est pourquoi il est préférable d'avoir des fichiers volumineux plutôt que trop de petits.

    Vous pouvez facilement vérifier la disponibilité des inodes en utilisant le drapeau -I avec la commande DF. Comme ça:

    sudo df -i

    Cela indiquera clairement le nombre total d'Inodes présents dans le système de fichiers, ainsi que le montant actuellement utilisé. S'il n'y a plus d'inodes libres sur votre système, c'est la source de l'erreur «pas d'espace laissé sur l'appareil».

    Comme les inodes ne sont créés que lors de la première mise en forme du lecteur, il n'y a aucun moyen de générer plus d'inodes. Tout ce que vous pouvez faire est de supprimer tous les fichiers inutiles pour libérer des inodes pour les fichiers futurs.

    Correction 3: Mark Bad Blocks

    La corruption des données est le sort inévitable de tout disque dur. Bien qu'un nouveau lecteur ne rencontrera pas ce problème, les disques durs plus anciens commenceront progressivement «mauvais».

    Cela signifie que des parties du disque dur sont rendues inutilisables, même si le système de fichiers les considère toujours. Ces mauvais blocs gonflent faussement l'espace libre apparent sur le lecteur, alors qu'en vérité aucun fichier ne peut leur être écrit. Cela conduit à une erreur «pas d'espace laissé sur l'appareil», car le système d'exploitation essaie et ne stocke pas de données sur ces emplacements.

    Il n'y a aucun moyen réel de résoudre ce problème, car les mauvais secteurs sont le résultat de l'usure physique d'un disque dur. La seule chose que vous pouvez faire est de marquer les mauvaises secteurs afin qu'ils ne soient plus référencés par le système de fichiers.

    Cela vous oblige à démarrer à partir d'un CD en direct, car vous ne pouvez pas effectuer une vérification du système de fichiers dans un lecteur en cours d'exécution. Une fois que vous avez fait cela, utilisez simplement la commande suivante:

    sudo fsck -vcck / dev / sda

    Cela remplace le / dev / sda par le chemin du lecteur que vous souhaitez réparer. Cela détectera automatiquement tous les mauvais blocs sur le lecteur et les marquera comme inutilisable. Cependant, il ne vous donnera aucune capacité de stockage supplémentaire, alors soyez prêt à nettoyer certains fichiers inutiles pour libérer de l'espace sur le lecteur.

    Quelle est la meilleure façon de corriger l'erreur «pas d'espace laissé sur l'appareil»?

    La raison habituelle de voir une erreur «pas d'espace laissé sur l'appareil» sur Ubuntu ou toute autre distribution Linux est un fichier supprimé toujours utilisé par un processus en cours d'exécution. Cela se réserve le stockage occupé par le fichier, empêchant d'autres opérations d'écrire des données à cet espace.

    La résolution de ce problème est également la plus simple, car tout ce que vous avez à faire est de redémarrer le processus en question. Les autres causes de l'erreur, cependant, ne sont pas si faciles à résoudre.

    Que votre lecteur soit en proie à de mauvais blocs de données ou à manquer d'Inodes, il n'y a aucun moyen direct de résoudre ces problèmes. Vous devez supprimer les fichiers existants pour faire de l'écriture de nouvelles données.