Pour commencer, je mentionnerai l'histoire de la façon dont le problème est survenu et ensuite comment le résoudre.
Mon équipe est un Netbook Sony Vaio m120AL que je possède depuis environ 3 longues années avec un disque dur de 320 Go où ils coexistent Windows 7, Chakra , ma partition de travail avec Xubuntu 12.04, la partition swap, la partition / home et une partition d'informations supplémentaires avec laquelle je partage des informations Windows.
Pour ces raisons, mes partitions racine sur les deux systèmes sont considérablement petites selon la plupart des normes (environ 6 Go chacune) mais elles ne m'ont jamais posé de problème car elles sont plus que suffisantes pour tous les paquets dont j'ai besoin.
Maintenant, entrant dans la situation spécifique, il y a quelques jours en appliquant quelques mises à jour dans Xubuntu (parmi lesquels un nouveau noyau a été inclus) Je vois que le gestionnaire de mise à jour affiche une erreur disant qu'il essaie d'installer linux-image-3.2.0-51-generic mais que sa dépendance linux-headers-3.2.0-51 Il ne sera pas installé, je passe en revue l'erreur en détail et je remarque que dpkg se plaint qu'il n'y a pas d'espace disponible.
L'erreur a dit quelque chose de ce style, bien que pas identique parce que je ne l'ai pas écrit:
impossible de créer `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(pendant le traitement` ./usr/src/linux-headers -3.2.0 .43-XNUMX / arch / xtensa / include / asm / coprocessor.h '): Il ne reste plus d'espace sur l'appareil
À une certaine occasion, la même chose m'est arrivée mais c'était parce que j'avais laissé plusieurs anciens noyaux s'accumuler sans les supprimer, mais cette fois je vérifie et j'ai pratiquement 600 Mb disponibles selon conky à partir de ce que je ne comprends pas, mais pour confirmer si cela peut être une erreur dans la façon dont je l'avais configuré ou similaire, je lance un df -h:
Donc je ne me trompe pas et c'est plus qu'assez d'espace pour effectuer la mise à jour (je l'ai fait de cette façon plusieurs fois au cours de la longue année depuis que je suis avec Xubuntu) de toute façon je fais un sudo apt-se nettoyer pour nettoyer les paquets que j'ai téléchargés et réessayer, mais avec les mêmes résultats.
Je trouve toujours cela étrange mais de toute façon j'essaye de sortir / des thèmes d'icônes que j'utilise toujours et que j'ai beaucoup modifiés (Faenza y Réveillé) pour libérer plus d'espace, et ainsi finalement réussir à effectuer la mise à jour, en procédant à nouveau pour les renvoyer à /.
Cependant, l'idée restait dans ma tête que l'affaire devait aller ailleurs mais je ne savais pas laquelle. Quelques heures plus tard, lorsque j'essaye d'installer des paquets supplémentaires, j'obtiens à nouveau l'erreur susmentionnée, et encore une fois, il y avait assez d'espace libre, alors je fais mes recherches.
Une recherche internet m'amène à plusieurs fils sur les forums de ubuntu-est, mais la réponse de certains individus il y a toujours la même: vous n'avez pas assez d'espace supprimez les fichiers ou développez la partition racine, mais j'ai remarqué quelque chose en commun dans les différents threads que j'ai trouvés, toujours la partition racine qui avait de l'espace libre, mais c'était similaire au mien (~ 600-900 Mo) et la taille de la partition n'a jamais dépassé 10 Go alors j'ai fini de me convaincre que le problème devait en être un autre, et c'est ainsi que je suis arrivé au titre du post grâce à cette page, le problème est que la partition racine avait 100% des inodes utilisés.
L'utilisation des inodes peut être vue avec la commande df -je:
Et maintenant vient l'explication.
Les inodes sont dans le mot de Dennis Ritchie:
Un index, en raison de la structure quelque peu inhabituelle d'un système de fichiers qui stockait les informations d'accès aux fichiers sous forme de liste plate sur le disque, laissant de côté toutes les informations hiérarchiques des répertoires
et par conséquent, il peut arriver que pour un système de fichiers donné, il y ait encore de l'espace libre pour stocker les fichiers, mais il n'y a pas d'inœuds disponibles pour les indexer car il y a beaucoup de fichiers dans le système et donc de nouveaux ne peuvent pas être créés.
Le fait est que le nombre d'inodes dans une partition Ext4 ne peut pas être modifié (il existe d'autres types de systèmes tels que JFX o XFS où ce n'est pas une limitation car il est dynamique) c'est un nombre fixe qui est calculé lors de la création de la partition avec mkfs.ext4 en fonction de sa taille avec un ratio d'octets par inode selon les préférences situées dans /etc/mke2fs.conf.
Lors de l'installation du système, il est habituel d'utiliser les préférences par défaut qui incluent une relation inode = 16384, qui pour les petites partitions pourrait être trop grande et ne pas créer assez (comme dans mon cas). La seule façon de le changer est de créer / formater la partition et de la spécifier avec l'option -i.
Cependant, ce n'était pas une option pour moi, car j'ai déjà mentionné que les inodes sont liés au nombre de fichiers existants, j'ai donc utilisé le script bash suivant trouvé dans débordement de pile et qui est lié sur la page que vous avez mentionnée précédemment pour trouver quels étaient les répertoires de la partition racine avec plus de fichiers:
#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$
Ce qui donne le résultat suivant:
Le numéro qui apparaît à gauche indique le nombre de fichiers présents et le chemin indique le répertoire associé, une ligne en dessous apparaît le répertoire / var / lib / dpkg / info mais comme toujours je purge mes paquets ici il n'y a rien à faire .
Cependant, si je reconnais deux problèmes, le premier et bien que le catpura ne monte pas de là, plusieurs autres entrées incluent les icônes Réveillé, donc je dois les déplacer oui ou oui, d'ailleurs cela explique pourquoi quand je l'ai fait, j'ai pu mettre à jour les paquets, puisque j'ai libéré de nombreux inodes de la partition racine lorsque je les ai déplacés, mais le problème est revenu lorsque je les ai déplacés.
Et deuxièmement, le plus grand nombre d'entrées suivant est associé aux en-têtes de plusieurs anciens noyaux, et je me rends compte que la procédure que j'utilise toujours pour éliminer les anciens noyaux n'élimine pas les en-têtes, ce que j'utilise habituellement est le suivant, dans un terminal j'écris:
dpkg --get-sélections | grep image linux
qui me montre les noyaux installés puis j'utilise:
paquet sudo apt-get purge
Où package est le nom du noyau en question, mais cela ne supprime pas les en-têtes associés, je fais donc un:
dpkg --get-sélections | grep linux
Et puis je procède à la suppression des anciens en-têtes, avec:
sudo apt-get purge linux-headers-3.2.0-41 linux-headers-3.2.0-44 linux-headers-3.2.0-45 linux-headers-3.2.0-48
Et voilà, mais bien sûr il y avait aussi la question des icônes Réveillé donc je décide de les déplacer vers ~ / .icons et de les rendre disponibles pour tout le système je fais juste un lien symbolique dans / usr / share / icons, le premier résultat de df -je C'est à l'élimination des en-têtes et le second après avoir déplacé les icônes.
Avec cela le problème est résolu, et je peux installer / mettre à jour des packages sans problème, j'espère que ce post sera utile à quelqu'un, ou servira de référence future sur les installations dans de petites partitions et démystifier le sujet si répandu par les forums du manque De l'espace.
Salut, utilisez ubuntu tweak ( http://ubuntu-tweak.com ) est comme tuneup pour Windows, cela vous aide à supprimer beaucoup de déchets et dans le processus désinstalle les anciens noyaux en toute sécurité, cependant, cela laisse un noyau précédent pour démarrer, parfois le dernier noyau ne fonctionnait pas pour moi et j'ai réussi à entrer dans le système grâce à ne pas les supprimer tous.
Je le connais depuis longtemps, mais j'ai toujours préféré le faire à ma manière et comprendre le fonctionnement des choses, en tout cas, même sans la paire d'anciens en-têtes qui avaient le problème, il aurait présenté la même chose en plus ou moins de thèmes d'icônes, et qu'au final comme je l'ai mentionné ce n'est PAS un problème de manque de place mais d'inœuds utilisés.
Merci de partager ceci. Jusqu'à présent, je n'ai pas eu ce problème, car les disques que j'utilise sont tous au format Linux, pas de fenêtres, car je n'ai pas ce système sur mon ordinateur.
Donc, je vais garder cela à l'esprit, au cas où un jour je viendrais voir ce problème.
Le problème ne vient pas d'avoir des partitions avec Windows (c'est juste une particularité de mon cas) mais d'avoir de petites partitions racine, inférieures à 10 Go où l'installateur utilise les options par défaut de mke2fs (qui est celle qui formate les partitions) et vous Il part avec un petit nombre d'inœuds pour sa taille, et que comme c'est généralement presque la norme, toutes nos partitions sont en EXT4 qui fixe ce nombre lors de sa création et il n'est pas possible de le modifier plus tard.
Comme vous pouvez le voir, c'est le genre de chose qui éloigne les gens de Linux et ils finissent par revenir à Windows, comment pensez-vous qu'un utilisateur ordinaire dans cette situation peut résoudre le problème?
vous n'avez pas à perdre de temps à réparer et à configurer ce genre de choses et à perdre du temps productif.
Miguel de Icaza avait raison avec ce qu'il a dit et c'est pourquoi il a décidé de passer à Mac parce que TOUT FONCTIONNE là-bas, point final.
C'est ça. Sous OS X, tout fonctionne à merveille .. Il est inutile d'expliquer à ce moment pourquoi ce que l'auteur des commentaires post est arrivé, alors s'il vous plaît, personne ne nourrit ce commentaire. Cela se terminera en flammes.
Dans mon cas, Debian fonctionne tout sur mon PC et il s'avère que j'ai utilisé le DVD comme dépôt supplémentaire pour passer de Squeeze à Wheezy. Tout le monde peut donc mettre à jour.
Eh bien, vous avez l'esprit d'un utilisateur Windows.
GNU / Linux est grand pour vous.
salutations
c'est intéressant.
Cette erreur est très fréquente lors de l'installation de gentoo sur de petits disques, donc beaucoup de petits fichiers sources et la partition manque d'inœuds même s'il reste 60% d'espace libre. Au moins le manuel le corrige en tapant mke2fs -j -T small / dev / sdaX, il fonctionne probablement sous ubuntu. Avant de jouer à des paramètres étranges 😛
Exactement, comme je l'ai mentionné précédemment, vous pouvez spécifier un rapport d'octet d'inode avec l'option -i, mais il y a aussi l'option que vous mentionnez -T utilise l'un des modes par défaut dans le fichier de configuration qui nomme /etc/mke2fs.conf, dans dans ce cas, small appliquera une taille de bloc = 1024, une taille d'inode = 128 et un rapport octet-inods = 4096.
Excellent!
C'est le problème typique qui vous ronge la tête pendant longtemps jusqu'à ce que vous réalisiez d'où il vient.
+10 pour l'explication 😀
Comme tu le dis, tu as passé un bon moment à me tuer la tête! Merci beaucoup pour le commentaire, venant de quelqu'un qui en sait autant que toi c'est un honneur!
Excellent !!, j'ai appris autre chose, et cela m'a aidé à récupérer environ 19 Mo en supprimant un ancien en-tête, ainsi qu'en récupérant certains inodes. Maintenant, j'ai plus d'espace à installer. Comme je suis un débutant dans Linux, si vous pensez que ça va, je vous encourage à faire un post sur la façon de formater pour obtenir le plus grand nombre d'inodes et si cela peut être fait tout en conservant les informations du disque ou non.
Un salut et merci
Comme je l'ai mentionné dans une indication au début de l'entrée, c'est un problème très rare et est associé à de petites partitions racine (<10 Go) comme c'est mon cas, avec d'autres tailles, il est peu probable que cela se produise. Maintenant en ce qui concerne le changement du nombre d'inodes, comme je l'ai également mentionné dans l'entrée, il n'est pas possible de le faire sans formatage dans des partitions de type EXT4, donc vous ne pourriez pas conserver les informations sur le disque sans avoir fait une sauvegarde préalable, pour changer le ratio d'octets inodes utiliser l'option -i dans la commande mke2fs ou l'une des options associées à -T (petit, grand, énorme etc.).
Excellent! L'exposition du problème, l'explication de ses raisons, ses fondements et les étapes de la solution! J'appelle cela une excellente contribution! Merci Rayonant!
Merci pour l'article, cela m'a beaucoup aidé. J'avais tout essayé pour surmonter cette erreur et en supprimant les anciens en-têtes et leurs dépendances avec aptitude, j'ai pu réinstaller les programmes et faire les mises à jour. Je vous remercie!
Le même problème m'est arrivé, rien ne s'est passé et cela m'a mis à l'envers hahaha. Dans mon cas, la partition racine avait pas mal de mémoire libre, mais c'était 100% des inodes utilisés! Le fait est que si vous utilisez la même distribution depuis longtemps et que vous ne supprimez aucun vieux noyau au fil du temps, le backlog est terrible. Dans mon cas, j'ai pu résoudre le problème de la même manière que vous le dites, seul le sudo apt-get remove ou purge ne fonctionnait pas pour moi et la clé pour pouvoir supprimer ces fichiers du noyau obsolètes était d'utiliser sudo dpkg –remove et –purge, et un par un, j'ai pu libérer des inodes. Tout ce que vous apprenez. J'aurais aimé trouver cette entrée plus tôt car j'aurais résolu le problème plus tôt. Merci d'avoir esquissé un peu ce qu'est celui des inodes, je n'avais pas beaucoup d'idée.
Super blog, salutations!
Vous êtes un groso et bien que cela soit encombrant, cela se comprend assez bien. J'ai tout fait à la lettre mais ce que je ne peux pas faire c'est supprimer les précédents linux-headers, ça ne me laisse pas, ça me met
E: dpkg a été interrompu, vous devez exécuter manuellement "sudo dpkg –configure -a" pour corriger le problème
J'exécute ce que ça me dit et ça me fait
Réglage de openshot (1.4.0-1ubuntu1) ...
Traceback (appel le plus récent dernier):
Fichier "/ usr / sbin / update-python-modules", ligne 478, dans
package.install (py_installed)
Fichier "/ usr / sbin / update-python-modules", ligne 112, en cours d'installation
os.symlink (nom de fichier, chemin de destination)
OSError: [Errno 2] Aucun fichier ou répertoire de ce type
Erreur dans sys.excepthook:
Traceback (appel le plus récent dernier):
Fichier "/usr/lib/python2.7/dist-packages/apport_python_hook.py", ligne 128, dans apport_excepthook
os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
OSError: [Errno 28] Il ne reste plus d'espace sur l'appareil: '/var/crash/_usr_sbin_update-python-modules.0.crash'
L'exception originale était:
Traceback (appel le plus récent dernier):
Fichier "/ usr / sbin / update-python-modules", ligne 478, dans
package.install (py_installed)
Fichier "/ usr / sbin / update-python-modules", ligne 112, en cours d'installation
os.symlink (nom de fichier, chemin de destination)
OSError: [Errno 2] Aucun fichier ou répertoire de ce type
dpkg: erreur lors du traitement de OpenShot (–configure):
le thread a installé le script de post-installation a renvoyé le code de sortie d'erreur 1
dpkg: erreur: échec de l'ouverture de `/ var / lib / dpkg / status 'pour écrire l'état de la base de données: Il ne reste plus d'espace sur l'appareil
La question est, qu'est-ce que je porte?
Merci beaucoup! Ce message m'a beaucoup aidé.
Olé !!!
Non seulement vous résolvez un problème délicat, mais j'apprends (et j'apprécie) en cours de route
Salut. Tout d'abord, merci pour le message ...
Deuxièmement, malheureusement, cela ne m'a pas aidé. Je suis venu vers lui en raison d'un problème de paquet cassé, que le système ne me permet pas de résoudre en raison d'un manque d'espace, qui en réalité d'après ce qui a été expliqué ici était les nœuds i.
J'ai donc essayé de purger les anciens noyaux, comme suggéré, mais le système ne me laisse pas:
juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
Lecture de la liste des paquets ... Terminé
Créer une arborescence de dépendances
Lecture des informations d'état ... Terminé
Vous pouvez exécuter "apt-get -f install" pour le corriger:
Les packages suivants ont des dépendances non satisfaites:
tzdata-java: dépend de: tzdata (= 2014i-0ubuntu0.12.04) mais 2014e-0ubuntu0.12.04 va être installé
E: Dépendances non satisfaites. Essayez "apt-get -f install" sans paquet (ou spécifiez une solution).
Et quand je suis les conseils du système:
juan @ juan-P29G: ~ $ sudo apt-get -f installer
Lecture de la liste des paquets ... Terminé
Créer une arborescence de dépendances
Lecture des informations d'état ... Terminé
Correction des dépendances ... Terminé
Les packages supplémentaires suivants seront installés:
tzdata
Les packages suivants seront mis à jour:
tzdata
1 mis à jour, 0 sera installé, 0 à supprimer et 23 non mis à jour.
1 pas entièrement installé ou retiré.
0 B / 461 Ko de fichiers doivent être téléchargés.
31,7 ko seront libérés après cette opération.
Voulez-vous continuer [O / n]? s
Préconfiguration des packages ...
(Lecture de la base de données… 893468 fichiers ou répertoires actuellement installés.)
Préparation du remplacement de tzdata 2014e-0ubuntu0.12.04 (en utilisant… / tzdata_2014i-0ubuntu0.12.04_all.deb)…
Déballage du remplacement tzdata ...
dpkg: erreur de traitement /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–unpack):
Impossible de sauvegarder le lien symbolique pour `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Il ne reste plus d'espace sur l'appareil
Un rapport "apport" n'a pas été rédigé car le message d'erreur indique que l'erreur est le disque plein
Des erreurs ont été rencontrées lors du traitement:
/var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
E: Sub-process / usr / bin / dpkg a retourné un code d'erreur (1)
Un cercle vicieux ... Bref, je vais voir ce que je peux faire.
Salutations.
Rebonjour… Je sais comment briser le cercle vicieux.
Je vais supprimer l'image du plus ancien des noyaux avec cette commande:
sudo dpkg –supprimer linux-image-3.2.0-29-generic-pae
Avec cela, je gagne 4389 i-nœuds, assez pour réparer le paquet cassé, puis je supprime les en-têtes de l'ancien noyau comme indiqué dans l'article.
Et maintenant, je vais récupérer plus d'i-nœuds en supprimant un tas d'anciens noyaux ...
Merci et salutations, Juan Carlos.
Il ne m'a pas laissé supprimer les en-têtes
J'ai tapé
sudo nautile
Et je suis allé dans le dossier / usr / src
Là, j'ai vu les fichiers "en-têtes" et je les ai supprimés
Sur ce, il m'a déjà laissé passer la commande de suppression automatique
Je vous remercie!! le post peut être un peu vieux mais toujours très utile, problème résolu avec les inodes
Rayonant: une explication exemplaire.
Bien que, dans mon cas, j'ai dû étendre la partition (avec Gparted), votre message m'a aidé à comprendre le problème. Et après avoir suivi votre méthode, je suis passé de 90% d'inodes occupés (après avoir étendu la partition), à seulement 28%.
Merci beaucoup. Je vais l'utiliser à partir de maintenant pour éliminer les anciens noyaux (et en-têtes).
Merci aussi à Juan Carlos (j'ai eu le même problème).
Une accolade.
Post intéressant,
Dans mon cas, je suis passé de 100% d'utilisation à 9%
root @ pi: / home / pi # apt-get clean
root @ pi: / home / pi # df -i
S. fichiers Nodes-i NUsados NLibres NUso% Monté sur
/ dev / root 1915424 1915288 136% /
plus tard, j'ai découvert que les tempêtes de ntopng touchaient mon nez, je les ai éliminées et ...
root @ pi: / home / pi # rm -rf / var / tmp / ntopng /
Tachán !!!
racine @ pi: / # df -i
S. fichiers Nodes-i NUsados NLibres NUso% Monté sur
/ dev / root 1915424 160408 1755016 9% /
Merci