Kunne ikke oppdatere / installere pakker - plassproblemer - frigjøre inoder

Først av alt, kommenter at dette er en spesiell feil på grunn av egenskapene til rotpartisjonen min, og at det vanligvis ikke skjer i typiske installasjoner. 

Til å begynne med vil jeg nevne historien om hvordan problemet skjedde, og hvordan jeg skal løse det.

Teamet mitt er en Sony Vaio m120AL netbook som jeg har i ca 3 lange år med en 320 GB harddisk der de eksisterer sammen Windows 7, chakra , arbeidspartisjonen min med Xubuntu 12.04, byttepartisjonen, / hjemmepartisjonen og en tilleggsinformasjonspartisjon som jeg deler informasjon med Windows.

Av disse grunnene er rotpartisjonene på begge systemene betydelig små av de fleste standarder (rundt 6 GB hver), men de har aldri gitt meg et problem, da de er mer enn nok for alle pakkene jeg trenger.

Nå, spesielt i situasjonen, for noen dager siden brukte noen oppdateringer i Xubuntu (blant annet en ny kjerne ble inkludert) Jeg ser at oppdateringsbehandling viser en feil som sier at den prøver å installere linux-image-3.2.0-51-generic, men at dens avhengighet linux-headers-3.2.0-51 It vil ikke bli installert, jeg gjennomgår feilen i detalj, og jeg merker at dpkg klager over at det ikke er ledig plass.

Feilen sa noe av denne stilen, men ikke identisk fordi jeg ikke skrev det ned:

kunne ikke opprette `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(under bearbeiding' ./usr/src/linux-headers -3.2.0 .43-XNUMX / arch / xtensa / include / asm / coprocessor.h '): Ingen plass igjen på enheten

Ved en tidligere anledning har det samme skjedd meg, men det var fordi jeg hadde tillatt flere gamle kjerner å akkumulere uten å slette dem, men denne gangen sjekker jeg og jeg har praktisk talt 600 Mb tilgjengelig iht. Snyteskaft fra det jeg ikke forstår, men for å bekrefte om det kan være en feil i hvordan jeg hadde konfigurert det eller lignende, kjører jeg en df -h:

df -h

Men jeg har fortsatt plass i /!

Så jeg tar ikke feil, og det er mer enn nok plass til å utføre oppdateringen (jeg har gjort det på denne måten mange ganger i det lange året siden jeg har vært med Xubuntu) uansett gjør jeg en sudo apt bli ren for å rense pakkene som jeg har lastet ned og prøve igjen, men med de samme resultatene.

Jeg synes fortsatt det er rart, men uansett prøver jeg å flytte ut av / ikonet temaene som jeg alltid bruker, og som jeg har endret mye (Faenza y Våknet) for å frigjøre mer plass, og dermed klarer jeg endelig å utføre oppdateringen, fortsetter å returnere dem til /.

Imidlertid ble ideen i hodet mitt at saken måtte gå andre steder, men jeg visste ikke hvilken. Noen timer senere når jeg prøver å installere noen ekstra pakker, får jeg den nevnte feilen igjen, og nok en gang var det nok plass til overs, så jeg undersøker.

Et internett-søk fører meg til flere tråder på forumene til ubuntu-er, men svaret til noen individer der er alltid det samme: du har ikke nok plass til å slette filer eller utvide rotpartisjonen, men jeg la merke til noe til felles i de forskjellige trådene jeg fant, alltid rotpartisjonen som hadde ledig plass, men det lignet på meg (~ 600-900 Mb) og partisjonens størrelse oversteg aldri 10 Gb, så jeg overbeviste meg selv om at problemet måtte være et annet, og det var slik jeg kom til tittelen på innlegget takket være dette side, er problemet at rotpartisjonen hadde 100% av inodene som ble brukt.

Bruken av inodene kan sees med kommandoen df -i:

100% brukte inoder

100% brukte inoder

Og nå kommer forklaringen.

Inodene står i ordet til Dennis Ritchie:

En indeks på grunn av den noe uvanlige strukturen til et filsystem som lagret tilgangsinformasjonen til filene som en flat liste på disken, og etterlater all hierarkisk informasjon i katalogene

og derfor kan det skje at det for et gitt filsystem fortsatt er ledig plass til å lagre filer, men det er ingen inoder tilgjengelig for å indeksere dem fordi det er mange filer i systemet og derfor ikke kan opprettes nye.

Poenget er at antall inoder i en partisjon EXT4 kan ikke endres (det finnes andre typer systemer som f.eks JFX o XFS der dette ikke er en begrensning fordi det er dynamisk) er det et fast tall som beregnes når partisjonen opprettes med mkfs.ext4 i henhold til størrelsen med et forhold på byte per inode i henhold til preferansene som ligger i /etc/mke2fs.conf.

Når du installerer systemet, er det vanlig å bruke standardinnstillingene som inkluderer en inode = 16384-relasjon, som for små partisjoner kan være for store og ikke skape nok (som i mitt tilfelle). Den eneste måten å endre den på er å opprette / formatere partisjonen og spesifisere den med alternativet -i.

Dette var imidlertid ikke et alternativ for meg, da jeg allerede nevnte at inodene er relatert til antall eksisterende filer, så jeg brukte følgende bash-skript funnet i stabeloverflyt og som er lenket på siden du nevnte før for å finne hvilke som var katalogene i rotpartisjonen med flere filer:

viktig å vite at skriptet analyserer katalogen der det heter, det vil si som i mitt tilfelle jeg var interessert i å analysere / Først i terminalen må jeg flytte med cd / og deretter hvis du skal ringe til skriptet
#!/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_$$

Som gir følgende resultat:

Og her er de skyldige!

Og her er de skyldige!

Nummeret som vises til venstre angir antall filer som er til stede, og banen viser den tilknyttede katalogen, en linje nedenfor vises katalogen / var / lib / dpkg / info, men som alltid renser jeg pakkene mine her, det er ingenting å gjøre.

Men hvis jeg kjenner igjen to problemer, den første og selv om catpuraen ikke kommer derfra, inkluderer flere oppføringer ikonene Våknet, så jeg må flytte dem ja eller ja, i tillegg til at det forklarer hvorfor da jeg gjorde det, kunne jeg oppdatere pakkene, siden jeg frigjorde mange inoder fra rotpartisjonen da jeg flyttet dem, men problemet kom tilbake da jeg flyttet dem.

Og for det andre er det neste større antallet oppføringer knyttet til overskriftene til flere gamle kjerner, og jeg innser at prosedyren som jeg alltid bruker for å eliminere de gamle kjernene ikke eliminerer overskriftene. Det jeg vanligvis bruker er følgende, i en terminal skriver jeg:

dpkg - get-valg | grep linux-image

kjerner-rek

som viser meg kjernene som er installert, og så bruker jeg:

sudo apt-get purge-pakke

Hvor pakken er navnet på den aktuelle kjernen, men dette fjerner ikke de tilknyttede overskriftene, så jeg gjør en:

dpkg - get-valg | grep linux

gamle overskrifter

Og så fortsetter jeg å fjerne de gamle topptekstene, med:

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

Og voilà, men selvfølgelig var det også problemet med ikoner Våknet så jeg bestemmer meg for å flytte dem til ~ / .icons og for å gjøre dem tilgjengelige for hele systemet lager jeg bare en symbolsk lenke i / usr / share / icons, det første resultatet av df -i Det er med eliminering av topptekst og det andre etter å ha flyttet ikonene.

Inoder utgitt av dyngen!

Inoder utgitt av dyngen!

Med dette er problemet løst, og jeg kan installere / oppdatere pakker uten problemer. Jeg håper dette innlegget vil være til hjelp for noen, eller tjene for fremtidig referanse på installasjoner i små partisjoner og avmystifisere emnet som blir spredt av fora for mangelen Av plass.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Ferdinand Baptist sa

    Hei, bruk ubuntu tweak ( http://ubuntu-tweak.com ) er som tuneup for windows, det hjelper deg med å fjerne mye søppel og avinstallerer i løpet av prosessen den gamle kjernen trygt, men den etterlater en tidligere kjerne å starte, noen ganger fungerte den siste kjernen ikke for meg, og jeg klarte å gå inn i systemet takket være å ikke slette dem alle.

    1.    Rayonant sa

      Jeg har kjent ham lenge, men jeg har alltid foretrukket å gjøre det på min måte og forstå hvordan ting fungerer, uansett, selv uten paret gamle overskrifter som hadde problemet, ville det ha presentert det samme i mer eller mindre tid så ikon temaer, og at det til slutt som jeg nevnte det IKKE er et problem med mangel på plass, men av inoder som brukes.

  2.   Mauritius sa

    Takk for at du delte dette. Så langt har jeg ikke hatt det problemet, siden platene jeg bruker, alle er i Linux-format, ingen vinduer, siden jeg ikke har det systemet på datamaskinen min.

    Så jeg vil huske på dette, hvis jeg en dag skulle se dette problemet.

    1.    Rayonant sa

      Problemet kommer ikke fra å ha partisjoner med Windows (det er bare en egenart i mitt tilfelle), men fra å ha små rotpartisjoner, mindre enn 10 GB, der installasjonsprogrammet bruker standardalternativene til mke2fs (som er den som formaterer partisjonene) og du Det etterlater et lite antall inoder for størrelsen, og at som vanligvis er nesten normen, er alle partisjonene våre i EXT4 som setter dette tallet når det er opprettet, og det er ikke mulig å endre det senere.

  3.   gerardo H. sa

    Som du kan se, er dette den typen ting som holder folk borte fra linux, og de ender opp med å gå tilbake til windows. Hvordan tror du en vanlig bruker i denne situasjonen kan løse problemet?
    du trenger ikke å kaste bort tid på å fikse og konfigurere slike ting og kaste bort produktiv tid.
    Miguel de Icaza hadde rett i det han sa, og det var derfor han bestemte seg for å bytte til Mac fordi ALT FUNGER der, periode.

    1.    livlig sa

      Det er det. I OS X fungerer alt vakkert .. Det er ubrukelig å forklare på dette øyeblikket hvorfor hva forfatteren av innleggskommentarene skjedde, så vær så snill, ingen gir denne kommentaren. Det vil ende i flamme.

      1.    eliotime3000. sa

        I mitt tilfelle jobber Debian alt på PC-en min, og det viser seg at jeg brukte DVD-en som en ekstra repo for å oppgradere fra Squeeze til Wheezy. Så hvem som helst kan oppdatere.

    2.    fabian sa

      Vel, du har tankene til en Windows-bruker.
      GNU / Linux er stort for deg.
      hilsen

  4.   sieg84 sa

    dette er interessant.

  5.   Jorge sa

    Denne feilen er veldig hyppig når du installerer gentoo på små disker, så mange små kildefiler og partisjonen går tom for inoder selv om det er 60% ledig plass igjen. I det minste løser håndboken det ved å skrive mke2fs -j -T small / dev / sdaX, den kjører antagelig på ubuntu. Før jeg spiller rare innstillinger 😛

    1.    Rayonant sa

      Akkurat, som jeg nevnte før, kan du spesifisere et inode byte-forhold med alternativet -i, men det er også alternativet du nevner -T bruker en av standardmodusene i konfigurasjonsfilen som heter /etc/mke2fs.conf, i i dette tilfellet vil liten bruke en blokkstørrelse = 1024, inode størrelse = 128 og et byte-inods-forhold = 4096.

  6.   MSX sa

    Excelente!
    Det er det typiske problemet som spiser hodet på deg lenge til du skjønner hvor det kom fra.
    +10 for forklaring 😀

    1.    Rayonant sa

      Som du sier, hadde du det bra å drepe hodet mitt! Tusen takk for kommentaren, kommer fra noen som vet like mye som deg er en ære!

  7.   Anthony sa

    Utmerket !!, jeg har lært noe annet, og det har hjulpet meg å gjenopprette 19 MB eller så ved å fjerne en gammel topptekst, samt å gjenopprette noen inoder. Nå har jeg mer plass til å installere. Siden jeg er ganske nybegynner for Linux, oppfordrer jeg deg til å lage et innlegg om hvordan du formaterer for å oppnå høyest antall inoder og om det kan gjøres mens du beholder diskinformasjonen, eller ikke.
    En hilsen og takk

    1.    Rayonant sa

      Som jeg nevnte i en indikasjon i begynnelsen av oppføringen, er det et veldig sjeldent problem og er assosiert med små rotpartisjoner (<10 GB) som det er tilfelle, med andre størrelser er det lite sannsynlig. Nå angående endring av antall inoder, som jeg også nevnte i oppføringen, er det ikke mulig å gjøre det uten formatering i partisjoner type EXT4, så du kunne ikke beholde informasjonen på disken uten å ha tatt en tidligere sikkerhetskopi, til endre byteforhold inoder bruk alternativet -i i mke2fs-kommandoen eller ett av alternativene assosiert med -T (liten, stor, stor osv.).

  8.   Mario sa

    Utmerket! Beskrivelsen av problemet, forklaringen på hvorfor det skjedde, grunnlaget for det og trinnene i løsningen! Jeg kaller dette et utmerket bidrag! Takk Rayonant!

  9.   Diana Bedoya sa

    Takk for artikkelen, det hjalp meg veldig. Jeg hadde prøvd alt for å overvinne denne feilen, og ved å fjerne de gamle overskriftene og deres avhengighet med evne kunne jeg installere programmer på nytt og gjøre oppdateringer. Takk skal du ha!

  10.   Jasco sa

    Det samme problemet har skjedd med meg, ingenting har skjedd, og det har ført meg opp ned hahaha. I mitt tilfelle hadde rotpartisjonen ganske mye ledig minne, men det var med 100% inoder brukt! Poenget er at hvis du har brukt den samme distribusjonen i lang tid og ikke fjerner noen gamle kjerner over tid, er etterslepet forferdelig. I mitt tilfelle var jeg i stand til å løse problemet på en lignende måte som du sa det, bare at sudo apt-get remove or purge ikke fungerte for meg, og nøkkelen til å kunne fjerne de nedlagte kjernefilene var å bruke sudo dpkg –remove and –purge, og en etter en klarte jeg å frigjøre inoder. Alt du lærer. Jeg skulle ønske jeg hadde funnet denne oppføringen tidligere fordi den ville ha løst saken før. Takk for at du tegner litt hva den inoden er, jeg ante ikke så mye.
    Stor blogg, hilsen!

  11.   Leo sa

    Du er en groso, og selv om det er tungvint, forstås det ganske bra. Jeg gjorde alt til punkt og prikke, men det jeg ikke kan gjøre er å fjerne de forrige linux-overskriftene, det lar meg ikke, det setter meg
    E: dpkg ble avbrutt, du må kjøre "sudo dpkg –configure -a" manuelt for å løse problemet
    Jeg utfører det den forteller meg, og det gjør meg
    Stille inn openshot (1.4.0-1ubuntu1) ...
    Sporing (siste samtale sist):
    Fil "/ usr / sbin / update-python-modules", linje 478, i
    package.install (py_installed)
    Fil "/ usr / sbin / update-python-modules", linje 112, i installasjon
    os.symlink (filnavn, destpath)
    OSError: [Errno 2] Ingen slik fil eller katalog
    Feil i sys.excepthook:
    Sporing (siste samtale sist):
    Fil "/usr/lib/python2.7/dist-packages/apport_python_hook.py", linje 128, i apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
    OSError: [Errno 28] Ingen plass igjen på enheten: '/var/crash/_usr_sbin_update-python-modules.0.crash'

    Opprinnelig unntak var:
    Sporing (siste samtale sist):
    Fil "/ usr / sbin / update-python-modules", linje 478, i
    package.install (py_installed)
    Fil "/ usr / sbin / update-python-modules", linje 112, i installasjon
    os.symlink (filnavn, destpath)
    OSError: [Errno 2] Ingen slik fil eller katalog
    dpkg: feilbehandling av openshot (–konfigurer):
    tråden installerte skriptet etter installasjonen returnerte feilutgangskode 1
    dpkg: feil: kunne ikke åpne `/ var / lib / dpkg / status 'for å skrive databasestatus: Ingen plass igjen på enheten
    Spørsmålet er, hva har jeg på meg?

  12.   Pablo sa

    Takk så mye! Dette innlegget hjalp meg veldig.

  13.   Pang sa

    Ole!!!

    Ikke bare løser du et vanskelig problem, men jeg lærer (og liker) underveis

  14.   Juan Carlos sa

    Hei. Først av alt, takk for innlegget ...

    For det andre, det hjalp meg dessverre ikke. Jeg kom til ham på grunn av et problem med en ødelagt pakke, som systemet ikke tillater meg å løse på grunn av plassmangel, som i virkeligheten fra det som ble forklart her var nodene i.

    Så jeg prøvde å rense de gamle kjernene, som foreslått, men systemet lar meg ikke:
    juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
    Leseliste over pakker ... Ferdig
    Å skape avhengighetstre
    Les statusinformasjonen ... Ferdig
    Det kan være lurt å kjøre "apt-get -f install" for å rette det:
    Følgende pakker har uavhengige avhengigheter:
    tzdata-java: Avhengig: tzdata (= 2014i-0ubuntu0.12.04) men 2014e-0ubuntu0.12.04 skal installeres
    E: Avhengighet ikke oppfylt. Prøv "apt-get -f install" uten pakker (eller spesifiser en løsning).

    Og når jeg følger rådene fra systemet:
    juan @ juan-P29G: ~ $ sudo apt-get -f install
    Leseliste over pakker ... Ferdig
    Å skape avhengighetstre
    Les statusinformasjonen ... Ferdig
    Korrigere avhengigheter ... Ferdig
    Følgende ekstra pakker vil bli installert:
    tzdata
    Følgende pakker vil bli oppdatert:
    tzdata
    1 oppdatert, 0 vil bli installert, 0 for å fjerne, og 23 ikke oppdatert.
    1 ikke ferdig installert eller fjernet.
    0 B / 461 kB filer må lastes ned.
    31,7 kB vil bli frigitt etter denne operasjonen.
    Vil du fortsette [Y / n]? s
    Forkonfigurere pakker ...
    (Leser databasen ... 893468 filer eller kataloger som er installert.)
    Forbereder å erstatte tzdata 2014e-0ubuntu0.12.04 (bruker… / tzdata_2014i-0ubuntu0.12.04_all.deb) ...
    Pakke ut erstatningen for tzdata ...
    dpkg: feilbehandling /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–pakke):
    kan ikke sikkerhetskopiere symlink for `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Ingen plass igjen på enheten
    En "apport" -rapport ble ikke skrevet fordi feilmeldingen indikerer at feilen er full
    Det ble oppstått feil under behandlingen:
    /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
    E: Sub-prosess / usr / bin / dpkg returnerte en feilkode (1)

    En ond sirkel ... Uansett får jeg se hva jeg kan gjøre.

    Hilsener.

  15.   Juan Carlos sa

    Hei igjen ... Jeg vet hvordan jeg skal bryte den onde syklusen.

    Jeg vil fjerne bildet av den eldste av kjernene med denne kommandoen:
    sudo dpkg – Fjern linux-image-3.2.0-29-generic-pae

    Med det får jeg 4389 i-noder, nok til å reparere den ødelagte pakken, og deretter fjerne topptekstene fra den eldre kjernen som angitt i innlegget.

    Og nå vil jeg gjenopprette flere i-noder ved å fjerne en haug med gamle kjerner ...

    Takk og hilsener, Juan Carlos.

  16.   anonym sa

    Han lot meg ikke slette overskriftene

    Jeg har skrevet
    sudo nautilus

    Og jeg har gått til / usr / src-mappen
    Der har jeg sett "headers" -filene, og jeg har slettet dem
    Med det har han allerede gitt meg bestillingen

  17.   anonym sa

    Takk skal du ha!! innlegget kan være litt gammelt, men det er fortsatt veldig nyttig, problem løst med inoder

  18.   Luis sa

    Rayonant: en eksemplarisk forklaring.
    Selv om jeg i mitt tilfelle måtte utvide partisjonen (med Gparted), har innlegget ditt hjulpet meg til å forstå problemet. Og etter å ha fulgt metoden din, har jeg gått fra 90% okkuperte inoder (etter å ha utvidet partisjonen), til bare 28%.
    Takk så mye. Jeg vil bruke den fra nå av til å eliminere de gamle kjernene (og overskriftene).
    Takk også til Juan Carlos (jeg hadde det samme problemet).
    En klem.

  19.   Morsomt sa

    Interessant innlegg,
    I mitt tilfelle har jeg falt fra 100% bruk til 9%

    root @ pi: / home / pi # apt-get clean
    root @ pi: / home / pi # df -i
    S. filer Nodes-i NUsados ​​NLibres NUso% Montert på
    / dev / root 1915424 1915288 136 100% /

    senere fant jeg ut at ntopng-stormene berørte nesen min, jeg eliminerte dem og ...

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

    Tachán !!!

    root @ pi: / # df -i
    S. filer Nodes-i NUsados ​​NLibres NUso% Montert på
    / dev / root 1915424 160408 1755016 9% /

    Takk