Error a l'Actualitzar / Instal·lar Paquets - Problemes d'espai - Alliberar inodes

Primer de tot comentar que això és un error particular a causa de les característiques del meu partició arrel i que no sol succeir en instal·lacions típiques 

Per començar esmentés la història de com va succeir el problema i després com solucionar-ho.

El meu equip és un netbook Sony Vaio m120AL que tinc des de fa uns 3 anys llargs amb un disc dur de 320 GB on conviuen Windows 7, Chakra , El meu partició de treball amb Xubuntu 12.04/XNUMX, La partició de swap, la partició / home i una partició addicional d'informació amb la qual comparteixo informació amb Finestres.

Per aquestes raons meus particions arrel en ambdós sistemes són considerablement petites per als estàndards de la majoria (al voltant de 6GB cadascuna) però que mai m'han donat problemes ja que són més que suficients per a tots els paquets que necessito.

Ara bé entrant a la situació en concret, fa uns dies aplicant unes actualitzacions en Xubuntu (Entre les quals s'incloïa un nou Kernel) veig que el gestor d'actualitzacions mostra un error dient que s'esta tractant d'instal·lar linux-image-3.2.0-51-generic però que la seva dependència linux-headers-3.2.0-51 no serà instal·lada, reviso en detall l'error i m'adono que dpkg es queixa que no hi ha espai disponible.

L'error deia a l'alguna cosa d'aquest estil, encara que no idèntic perquè no ho vaig anotar:

no es va poder crear `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(mentre es processava` ./usr/src/linux-headers -3.2.0-43 / arch / xtensa / include / asm / coprocessor.h '): No queda espai al dispositiu

En alguna ocasió anterior m'ha passat el mateix però havia estat perquè havia deixat acumular diversos nucli antics sense esborrar-los, però en aquesta ocasió reviso i tinc pràcticament 600 Mb disponibles segons Conky pel que no ho entenc, però per confirmar si pot ser un error a com ho havia configurat o similar executar un df-h:

df-h

Però si encara tinc espai a /!

Pel que no m'equivoco i aquest és espai més que suficient per realitzar l'actualització (ho he fet així ja moltes vegades en l'any llarg ja que porto amb Xubuntu) de tota manera va realitzar un suo apt-netegeu-vos per netejar els paquets que tingui descarregats i intent de nou, però amb els mateixos resultats.

Es em segueix fent estrany però de tota manera intent moure fora de / dels temes d'icones que sempre ús i que he modificat molt (Faenza y Despert) Per alliberar més espai, i així finalment assoliment realitzar l'actualització, procedint novament a tornar-los a /.

No obstant això em va quedar al cap la idea que l'assumpte havia d'anar d'altra banda però no sabia com. Algunes hores més tard quan intento instal·lar alguns paquets extra surt de nou el susdit error, i un cop més vegada hi havia espai suficient de sobres, pel que em dedico a investigar.

Una recerca per Internet em porta a diversos fils en els fòrums de ubuntu-és, Però la resposta d'alguns individus allà sempre és a l'mateixa: no tens prou espai elimina arxius o àmplia la partició arrel, però em vaig adonar d'una cosa en comú en els diferents fils que vaig trobar, sempre la partició arrel que tenia espai lliure, però era similar a el meu (~ 600-900 Mb) i la mida de la partició mai superava els 10 Gb pel que em acabi de convèncer que el problema havia de ser un altre, i és així com arribi a el títol de l'post gràcies a aquesta pàgina, el problema és que la partició arrel tenia el 100% dels inodes usats.

L'ús dels inodes es pot veure amb la comanda df -i:

Inodes usats a el 100%

Inodes usats a el 100%

I ara ve la explicació.

Els inodes són en paraula de Dennis Ritchie:

Un índex, a causa de l'estructura alguna cosa inusual d'un sistema de fitxers que emmagatzemava la informació de l'accés als arxius com una llista plana en disc, deixant a l'marge tota la informació jeràrquica dels directoris

i per tant pot succeir que per a un sistema d'arxius determinat hi hagi encara espai lliure per emmagatzemar fitxers, però no quedin inodes disponibles per indexar perquè hi ha molts arxius en el sitema i per tant no poden crear-se nous.

L'assumpte és que el nombre de inodes en una partició EXT4 no pot ser modificat (hi ha altres tipus de sistemes com JFX o XFS on això no és una limitant ja que és dinàmic) és un nombre fix que es calcula quan es crea la partició amb mkfs.ext4 d'acord a la mida de la mateixa amb una relació de bytes per inodo segons les preferències ubicades a /etc/mke2fs.conf.

A l'instal·lar el sistema l'usual és que faci servir les preferències per defecte que inclou un relació inode = 16384, que per a particions petites pot ser massa gran i no creu el nombre suficient (com en el meu cas). L'única manera de canviar-la és creant / formatant la partició i especificant amb l'opció -i.

No obstant això això no era una opció per a mi, com ja ho vaig comentar els inodes estan relacionats amb el nombre de fitxers existents, per tant utilitzeu el següent script en bash que es troba en desbordament de pila i que aquesta enllaçat a la pàgina que abans mencions per trobar quins eren els directoris en la partició arrel amb més fitxers:

important saber que l'script analitza el directori des d'on s'ho digui, és a dir, com en el meu cas m'interessava analitzar / doncs primer a la terminal he de moure amb cd / i després si trucar a l'script
#!/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_$$

La qual cosa dóna el següent resultat:

I aquí estan els culpables!

I aquí estan els culpables!

El nombre que apareix a l'esquerra indica la quantitat d'arxius presents i la ruta indica el directori associat, una línia més avall surt directori / var / lib / dpkg / info però com sempre eliminar els meus paquets amb purga aquí no hi ha res a fer .

No obstant això si reconec dos problemes, el primer i encara que en la catpura no surt d'aquí cap amunt diverses entrades més inclouen a les icones Despert, De manera que he de moure si o si, a més que això explica per que quan ho vaig fer vaig poder actualitza els paquets, ja que alliberi molts inodes de la partició arrel quan els vaig moure, però el problema va tornar quan els recol·loqui.

I segon el següent major nombre d'entrades està associada als headers de diversos nucli vells, i caic en compte que el procediment que sempre ús per eliminar els nuclis vells no elimina els headers, el que sòl usar és el següent, en una terminal escric :

dpkg --get-selections | grep linux-image

nuclis-rec

la qual cosa em mostra els nuclis instal·lats i després ús:

sudo apt-get purge paquet

On paquet és el nom de l'nucli en qüestió, però això no remou els headers associats així que faig un:

dpkg --get-selections | grep linux

headers antics

I llavors procedeixo a eliminar els antics headers, amb:

sudo apt-get purga linux-headers-3.2.0-41 linux-headers-3.2.0-44 linux-headers-3.2.0-45 linux-headers-3.2.0-48

I voilà, però clar estava també el tema del que icones Despert així que decideixo moure'ls a ~ / .icons i perquè estiguin disponibles per a tot el sistema simplement faig un enllaç simbòlic a / usr / share / icons, el primer resultat de df -i és amb l'eliminació dels headers i el segon després d'haver mogut el icones.

¡Inodes alliberats per munt!

¡Inodes alliberats per munt!

Amb això ja està solucionat el problema, i puc instal·lar / actualitzar paquets sense problema, espero que aquesta entrada li sigui d'ajuda a algú, o serveixi per a referències futures sobre instal·lacions en particions petites i desmitifiqui el tema tan difós pels fòrums de la manca d'espai.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Ferran Baptista va dir

    Hola, utilitza ubuntu pessigar ( http://ubuntu-tweak.com ) És com el TuneUp per a windows, t'ajuda a treure moltes escombraries i de pas desinstal·la els nuclis vells de manera segura, però, deixa un antepenultimo nucli per arrencar, en alguna ocasió l'últim nucli no em va funcionar i aconsegueixi entrar a sistema gràcies al fet que no els esborri tots.

    1.    Rayonant va dir

      Si el conec de fa estona, però sempre he preferit fer-ho a la meva manera i entendre la manera com funcionen les coses, de tota manera fins i tot sense el parell headers vells que tenia el problema s'hagués presentat igual en més o menys temps pel temes d'icones, i que a la fi com ho esmenti NO és un problema de manca de espai sinó d'inodes usats.

  2.   Maurici va dir

    Gràcies per compartir això. Fins ara no he tingut aquest problema, ja que els disc que ús, estan tots en format per linux, res de windows, ja que no tinc aquest sistema en el meu equip.

    Així que, això ho tindré present, per si algun dia em arribés a veure amb aquest problema.

    1.    Rayonant va dir

      El problema no ve per tenir particions amb Windows (és només una particularitat del meu cas) sinó per tenir particions arrel petites, menors a 10Gb on l'instal·lador utilitza les opcions predeterminades de mke2fs (que és el que dóna format a les particions) i et deixa amb un nombre petit de inodes per a la grandària de la mateixa, i que com sol ser gairebé norma, totes les nostres particions estan en EXT4 que fixa aquest nombre quan es crea i no és possible modificar-després.

  3.   gerard H va dir

    com poden veure, aquest és el tipus de coses que allunyen la gent de linux i acaben tornant a windows, ¿com creuen que un usuari comú davant d'aquesta situació pugui resoldre el problema?
    un no té perquè estar perdent el temps arreglant i configurant aquest tipus de coses i perdent temps productiu.
    tenia raó Miguel d'Icaza amb el que deia i per això va decidir canviar-se a Mac perquè ahi TOT FUNCIONA i punt.

    1.    ILAV va dir

      Així mateix és. En OS X tot funciona bonic .. De res val explicar en aquest moment el per què va succeir el que l'autor de l'post comenta, així que si us plau, que ningú alimenti aquest comentari. Acabarà en flame.

      1.    eliotime3000 va dir

        En el meu cas, Debian em funciona tot en el meu PC i resulta que utilitzar el DVD com repo addicional per actualitzar de Squeeze a Wheezy. Així qualsevol pot actualitzar.

    2.    fabian va dir

      doncs aleshores, tens la ment d'un usuari windows.
      GNU / Linux et quedo gran.
      salutacions

  4.   sieg84 va dir

    això sí que està interessant.

  5.   Jorge va dir

    Aquest error és molt freqüent a l'instal·lar gentoo en discos nois, tants arxius font petits i es queda sense inodes la partició per mes que quedi el 60% d'espai lliure. Si més no el handbook ho soluciona a l'escriure mke2fs -j -T small / dev / SDAX, probablement camini en ubuntu. Abans d'estar tocant configuracions estranyes 😛

    1.    Rayonant va dir

      Exactament, com ja ho esmenti abans pots especificar una relació de bytes inodes amb l'opció -i, però també aquesta l'opció que esmentes -T utilitza un dels modes predeterminats a l'arxiu de configuració que nom /etc/mke2fs.conf, en aquest cas small apliqués un blocksize = 1024, mida del inodo de = 128 i una relació de bytes- inods = 4096.

  6.   MSX va dir

    Excel·lent!
    És el típic problema que et menja el cap una estona llarga fins que t'adones per on venia.
    +10 per l'explicació 😀

    1.    Rayonant va dir

      Tal qual ho dius, em va tenir un bon temps matant el cap !, moltes gràcies pel comentari, venint d'algú que sap tant com tu es tot un honor!

  7.   Antonio va dir

    Excel·lent !!, He après alguna cosa mes, i m'ha servit per recuperar 19Mb i escaig a l'treure un header antic, així com recuperar alguns inodes. Ara tinc mes espai per instal·lar. Com que sóc bastant novell amb Linux, si us sembla bé us animo a que feu algun post sobre com formatar per obtenir el major nombre de inodes i indicació de si es pot realitzar mantenint la informació de la unitat sencera o no.
    Una salutació i gràcies

    1.    Rayonant va dir

      Com ho esmenti en una indicació a l'inici de l'entrada és un problema molt poc comú i aquesta associat a particions arran de mida reduïda (<10 GB) com ho és el meu cas, amb altres mides és poc probable que passi. Ara bé respecte a el canvi de nombre de inodes, com també ho esmenti a l'entrada no és possible fer-ho sense formatar en particions tipus EXT4 pel que no podries mantenir la informació en el disc sense haver fet un suport previ, per canviar la relació bytes inodes s'usa l'opció -i en la comanda mke2fs o una de les opcions associades a -T (small, big, huge etc).

  8.   Mario va dir

    Excel·lent! L'exposició de el problema, l'explicació de l'perquè va succeir, els seus fonaments, i els passos de la solució! A això li dic un excel·lent aportació! Gràcies Rayonant!

  9.   Diana Bedoya va dir

    Gràcies per l'article, em va ajudar molt. Hi havia provat de tot per superar aquest error i als l'eliminar els headers vells i les seves dependències amb aptitude vaig poder tornar a instal·lar programes ia fer les actualitzacions. Gràcies!

  10.   Jasco va dir

    M'ha passat el mateix problema fa res, i m'ha portat de cap jajaja. En el meu cas, la partició arrel tenia prou memòria lliure, però estava amb el 100% de inodes usats! La qüestió és que si portes usant una mateixa distribució durant força temps i amb el pas el temps no elimines cap nucli antic, l'acumulació és terrible. En el meu cas vaig poder solucionar el problema de manera semblant a com ho poses, només que el sudo apt-get remove o purga no em funcionava i la clau per poder eliminar aquests arxius de nucli en desús va ser utilitzar sudo dpkg -remove i -purge, i un a un vaig poder anar alliberant inodes. Tot això que s'aprèn. Tant de bo hagués donat amb aquesta entrada abans perquè hauria solucionat l'assumpte abans. Gràcies per esbossar una mica què és això dels inodes, que no tenia gaire idea.
    ¡Gran bloc, una salutació!

  11.   Lleó va dir

    sos un grosso i encara que és molest s'entén força bé. Vaig fer tot a peu de la lletra però el que no puc fer és eliminar els linux-headers anteriors, no em deixa, em posa
    E: es va interrompre l'execució de dpkg, ha d'executar manualment «sudo dpkg -configure -a» per corregir el problema
    executo el que em diu i em posa
    Configurant OpenShot (1.4.0-1ubuntu1) ...
    Traceback (última trucada més recent):
    File «/ usr / sbin / update-python-modules», line 478, in
    package.install (py_installed)
    File «/ usr / sbin / update-python-modules», line 112, in install
    os.symlink (filename, destpath)
    OSError: [errno 2] No such file or directory
    Error in sys.excepthook:
    Traceback (última trucada més recent):
    File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 128, in apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
    OSError: [errno 28] No space left on device: '/var/crash/_usr_sbin_update-python-modules.0.crash'

    Original exception was:
    Traceback (última trucada més recent):
    File «/ usr / sbin / update-python-modules», line 478, in
    package.install (py_installed)
    File «/ usr / sbin / update-python-modules», line 112, in install
    os.symlink (filename, destpath)
    OSError: [errno 2] No such file or directory
    dpkg: error a l'processar OpenShot (-configure):
    el subprocés instal·lat l'script post-installation tornar el codi de sortida d'error 1
    dpkg: error: error a l'obrir `/ var / lib / dpkg / status 'per escriure la base de dades per a l'estat: No queda espai al dispositiu
    La pregunta és, que em disfresso?

  12.   Pau va dir

    Moltes gràcies! Em va servir un munt aquest post.

  13.   pang va dir

    Ole !!!

    No només resols un problema espinós, sinó que aprenc (i gaudeixo) pel camí

  14.   Joan Carles va dir

    Hola. En primer lloc, gràcies pel post ...

    En segon, lamentablement no em va servir. Vaig arribar a ell per un problema d'un paquet trencat, que el sistema no em deixa resoldre per falta d'espai, que en realitat pel que aquí es va explicar era dels nodes i.

    Llavors vaig intentar purgar els nuclis vells, com es suggereix, però el sistema no em deixa:
    juan @ juan-P29g: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
    Llegint llista de paquets ... Fet
    S'està construint l'arbre de dependències
    Llegint la informació d'estat ... Fet
    Potser vulgui executar «apt-get -f install» per corregir:
    Els següents paquets tenen dependències incomplides:
    tzdata-java: Depèn: tzdata (= 2014i-0ubuntu0.12.04) però 2014e-0ubuntu0.12.04 serà instal·lat
    E: Dependències incomplertes. Proveu «apt-get -f install» sense paquets (o especifiqui una solució).

    I quan segueixo el consell de sistema:
    juan @ juan-P29g: ~ $ sudo apt-get -f install
    Llegint llista de paquets ... Fet
    S'està construint l'arbre de dependències
    Llegint la informació d'estat ... Fet
    Corregint dependències ... Fet
    S'instal·laran els següents paquets extres:
    tzdata
    S'actualitzaran els següents paquets:
    tzdata
    1 actualitzats, 0 s'instal·laran, 0 per eliminar i 23 no actualitzats.
    1 no ha instal·lats de el tot o eliminats.
    Es necessita descarregar 0 B / 461 Kb de fitxers.
    Es alliberaran 31,7 kB després d'aquesta operació.
    Voleu continuar [S / n]? s
    Preconfigurant paquets ...
    (S'està llegint la base de dades ... 893468 fitxers o directoris instal·lats actualment.)
    Preparant per reemplaçar tzdata 2014e-0ubuntu0.12.04 (utilitzant ... / tzdata_2014i-0ubuntu0.12.04_all.deb) ...
    Desempaquetant la substitució de tzdata ...
    dpkg: error a l'processar /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (-unpack):
    no es pot recolzar enllaç simbòlic per a `./usr/share/zoneinfo/posix/America/Santo_Domingo ': No queda espai al dispositiu
    No va escriure un informe «APPORT» perquè el missatge d'error indica que l'error és de disc ple
    Es van trobar errors a l'processar:
    /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
    E: Sub-process / usr / bin / dpkg returned an error code (1)

    Un cercle viciós ... En fi, veuré què puc fer.

    Salutacions.

  15.   Joan Carles va dir

    Hola de nou ... ja sé com trencar el cercle viciós.

    Eliminaré la imatge del més vell dels nuclis amb aquesta comanda:
    sudo dpkg -remove linux-image-3.2.0-29-generic-pae

    Amb això guanyo 4389 nodes-i, suficients per reparar el paquet trencat, i després eliminar les capçaleres de el nucli més vell segons el que indica el post.

    I ara recuperaré més nodes-i eliminant un munt de nuclis vells ...

    Gràcies i salutacions, Joan Carles.

  16.   anònim va dir

    A mi no em deixava esborrar els headers

    he teclejat
    suo nautilus

    I he anat a la carpeta / usr / src
    Ahi he vist els fitxers «headers» i els he esborrat
    Amb això ja m'ha deixat posar l'ordre autoremove

  17.   anònim va dir

    Gràcies !! el post pot ser una mica vell però segueix sent de gran utilitat, problema resolt amb els inodes

  18.   Luis va dir

    Rayonant: una explicació exemplar.
    Encara que, en el meu cas, he hagut de ampliar la partició (amb Gparted), el teu post m'he servit per entendre el problema. I després de seguir el teu mètode, he passat d'un 90% de inodes ocupats (després d'haver ampliat la partició), a tan sols el 28%.
    Moltes gràcies. El faré servir en endavant per anar eliminant els vells nuclis (i els headers).
    Gràcies també a Joan Carles (jo tenia el mateix problema).
    Una abraçada.

  19.   Hilarius va dir

    Interessant post,
    En el meu cas he baixat d'un 100% d'ús a un 9%

    root @ pi: / home / pi # apt-get clean
    root @ pi: / home / pi # df -i
    S.ficheros Nodes-i NUsados ​​NLibres NUso% Muntat en
    / Dev / root 1915424 1915288 136% /

    després trobar q els temporals de ntopng m'estaven tocant els nassos, els he eliminat i ...

    root @ pi: / home / pi # rm -rf / var / tmp / ntopng /

    '' Tatxan !!!

    root @ pi: / # df -i
    S.ficheros Nodes-i NUsados ​​NLibres NUso% Muntat en
    / Dev / root 1915424 160408 1755016 9% /

    gràcies