Posodobitev / namestitev paketov ni uspela - Težave s prostorom - Osvobodite inode

Najprej komentirajte, da gre za posebno napako zaradi značilnosti moje korenske particije in da se običajno ne zgodi v tipičnih namestitvah 

Za začetek bom omenil zgodbo o tem, kako se je težava zgodila in kako jo potem rešiti.

Moja ekipa je Netbook Sony Vaio m120AL da imam približno 3 dolga leta s 320 GB trdega diska, kjer soobstajajo Windows 7, Chakra , moja delovna particija z Xubuntu 12.04, swap particijo, particijo / home in dodatno informacijsko particijo, s katero delim informacije Windows.

Zaradi tega so moje korenske particije v obeh sistemih po večini standardov precej majhne (približno 6 GB), vendar mi nikoli niso povzročale težav, saj so več kot dovolj za vse pakete, ki jih potrebujem.

Zdaj, ko vstopamo v posebno situacijo, smo pred nekaj dnevi uporabili nekaj posodobitev v Xubuntu (med katerimi je bilo vključeno novo jedro). Vidim, da upravitelj posodobitev kaže napako, da poskuša namestiti linux-image-3.2.0-51-generic, vendar je njegova odvisnost linux-headers-3.2.0-51 ne bo nameščen, podrobno pregledam napako in opazim, da se dpkg pritožuje, da ni na voljo prostora.

V napaki je pisalo nekaj o tem slogu, čeprav ni enako, ker tega nisem zapisal:

ni bilo mogoče ustvariti `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(med obdelavo` ./usr/src/linux-headers -3.2.0 .43-XNUMX / arch / xtensa / include / asm / coprocessor.h '): Na napravi ni več prostora

Ob neki prejšnji priložnosti se mi je zgodilo isto, vendar zato, ker sem dovolil kopičenje več starih jeder, ne da bi jih izbrisal, vendar tokrat preverim in imam na voljo skoraj 600 Mb Conky od tistega, česar ne razumem, ampak da potrdim, ali gre morda za napako v tem, kako sem ga konfiguriral ali podobno, zaženem df -h:

df -h

Ampak še vedno imam prostora v /!

Torej se ne motim in to je več kot dovolj prostora za izvedbo posodobitve (v tem letu sem to storil že velikokrat v dolgem letu, odkar sem z Xubuntujem), vseeno naredim sudo apt-get clean za čiščenje paketov, ki sem jih prenesel, in poskusite znova, vendar z enakimi rezultati.

Še vedno se mi zdi čudno, vendar se vseeno poskušam premakniti iz / tem ikon, ki jih vedno uporabljam in ki sem jih veliko spremenil (Faenza y Prebujena), da sprostite več prostora in tako končno uspete izvesti posodobitev in nadaljujte z njihovo vrnitvijo v /.

Vendar mi je v glavi ostala ideja, da mora zadeva iti drugam, vendar nisem vedel, katero. Nekaj ​​ur kasneje, ko poskušam namestiti nekaj dodatnih paketov, spet dobim omenjeno napako in spet je bilo dovolj prostora, zato raziskujem.

Iskanje po internetu me vodi do več niti na forumih ubuntu-jev, vendar je odgovor nekaterih posameznikov vedno enak: nimate dovolj prostora, izbrišite datoteke ali razširite korensko particijo, vendar sem v različnih nitih, ki sem jih našel, opazil nekaj skupnega, vedno korenska particija, ki je imela prosti prostor, vendar je bil podoben mojemu (~ 600-900 Mb) in velikost particije nikoli ni presegla 10 Gb, zato sem se prepričal, da mora biti problem v drugem, in tako sem prišel do naslova prispevka zahvaljujoč to strani, težava je v tem, da je imela korenska particija 100% uporabljenih inodov.

Uporabo inodov lahko vidimo z ukazom df -i:

100% uporabljeni inodi

100% uporabljeni inodi

In zdaj pride razlaga.

Inodi so v besedi Dennisa Ritchieja:

Indeks zaradi nekoliko nenavadne strukture datotečnega sistema, ki je podatke o dostopu do datotek shranil kot raven seznam na disku, pri čemer so ostale hierarhične informacije imenikov ob strani.

in zato se lahko zgodi, da je v danem datotečnem sistemu še vedno prostora za shranjevanje datotek, vendar ni na voljo inodov za njihovo indeksiranje, ker je v sistemu veliko datotek, zato novih ni mogoče ustvariti.

Bistvo je v tem, da je število inodov v particiji ZUN.4 ni mogoče spremeniti (obstajajo tudi druge vrste sistemov, kot je JFX o XFS kjer to ni omejitev, ker je dinamično) je fiksno število, ki se izračuna, ko se particija ustvari z mkfs.ext4 glede na njeno velikost z razmerjem bajtov na inode glede na nastavitve, ki se nahajajo v /etc/mke2fs.conf.

Pri namestitvi sistema običajno uporabljamo privzete nastavitve, ki vključujejo razmerje inode = 16384, ki je za majhne particije lahko prevelika in ne ustvari dovolj (kot v mojem primeru). Edini način, da ga spremenite, je tako, da ustvarite / formatirate particijo in jo določite z možnostjo -i.

Vendar zame to ni bila možnost, saj sem že omenil, da so inode povezani s številom obstoječih datotek, zato uporabite naslednji skript bash, ki ga najdete v preobremenitev in da je na strani, ki ste jo že omenili, povezan, da bi našli, kateri so bili imeniki v korenski particiji z več datotekami:

Pomembno je vedeti, da skript analizira imenik, od koder je poklican, torej kot v mojem primeru me je zanimala analiza / No, najprej v terminalu, s katerim se moram preseliti cd / in potem, če pokličete skript
#!/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_$$

Kar daje naslednji rezultat:

In tu so krivci!

In tu so krivci!

Številka, ki se prikaže na levi, označuje število prisotnih datotek, pot pa pripadajoči imenik, v spodnji vrstici se prikaže imenik / var / lib / dpkg / info, vendar kot vedno tukaj očistim svoje pakete, ni ničesar storiti.

Če pa prepoznam dve težavi, prva in čeprav se kapura od tam ne dvigne, še nekaj vnosov vključuje ikone Prebujena, zato jih moram premakniti da ali da, poleg tega pa pojasnjuje, zakaj sem lahko, ko sem to storila, pakete posodobil, saj sem ob premikanju sprostil veliko inodov iz korenske particije, vendar se je težava ponovila, ko sem jih preselil.

In drugič, naslednje največje število vnosov je povezanih z glavami več starih jeder in zavedam se, da postopek, ki ga vedno uporabljam za odstranjevanje starih jeder, ne odstrani glav, kar običajno uporabljam naslednje, v terminal pišem:

dpkg-get-selections | grep linux-slika

jedrca-rec

ki mi prikaže nameščena jedra in nato uporabim:

sudo apt-get paket za čiščenje

Kjer je paket ime zadevnega jedra, vendar to ne odstrani povezanih glav, zato naredim:

dpkg-get-selections | grep linux

stare glave

In nato nadaljujem z odstranjevanjem starih glav z:

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

In voilà, seveda pa je šlo tudi za ikone Prebujena zato sem se odločil, da jih premaknem v ~ / .icons in jih dam na voljo za celoten sistem, naredim samo simbolično povezavo v / usr / share / icons, prvi rezultat df -i To je z odpravo glave in drugo po premikanju ikon.

Inode, ki jih je sprostila kopica!

Inode, ki jih je sprostila kopica!

S tem je težava rešena in lahko pakete brez težav namestim / posodobim, upam, da bo ta objava nekomu v pomoč ali pa bo služila kot referenca za prihodnje namestitve v majhnih pregradah in demistificirala temo, ki so jo forumi tako širili o Vesolja.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Ferdinand Krstnik je dejal

    Živjo, uporabi ubuntu poteg ( http://ubuntu-tweak.com ) je podoben nastavitvi za Windows, pomaga vam odstraniti veliko smeti in v tem postopku varno odstrani stara jedra, vendar pusti prejšnje jedro za zagon, ob neki priložnosti zadnje jedro zame ni delovalo in jaz uspelo vstopiti v sistem zahvaljujoč temu, da jih ni vseh izbrisal.

    1.    Rayonant je dejal

      Poznam ga že dolgo, vendar sem vedno raje delal po svoje in razumem, kako stvari delujejo, vseeno pa bi tudi brez para starih glav, ki bi imeli težave, enako predstavil bolj ali manj time so ikone teme in na koncu, kot sem omenil, NI problem pomanjkanja prostora, temveč uporabljenih inodov.

  2.   Mauricio je dejal

    Hvala, ker ste to delili. Doslej nisem imel te težave, ker so diski, ki jih uporabljam, vsi v formatu Linux, brez oken, ker tega sistema v računalniku nimam.

    Torej, to bom imel v mislih, če bi nekega dne prišel pogledat to težavo.

    1.    Rayonant je dejal

      Težava ne izvira iz particij z operacijskim sistemom Windows (to je samo posebnost mojega primera), ampak iz majhnih korenskih particij, manjših od 10 GB, kjer namestitveni program uporablja privzete možnosti mke2fs (ki je tista, ki formatira particije) in you Odpade z majhnim številom inodov zaradi svoje velikosti in, kot je običajno skoraj običajno, so vse naše particije v EXT4, ki nastavi to številko, ko je ustvarjena, in je kasneje ni mogoče spremeniti.

  3.   gerardo H. je dejal

    Kot lahko vidite, je to tisto, kar ljudi oddaljuje od linuxa in se na koncu vračajo v okna. Kako mislite, da lahko skupni uporabnik v tej situaciji reši težavo?
    vam ni treba izgubljati časa s popravljanjem in konfiguriranjem tovrstnih stvari in zapravljanjem produktivnega časa.
    Miguel de Icaza je imel prav s tem, kar je povedal, zato se je odločil, da preklopi na Mac, ker VSE VSE DELA, točka.

    1.    živahno je dejal

      To je to. V OS X vse deluje lepo .. V tem trenutku je brez razloga razlagati, zakaj se je zgodilo, kaj je napisal avtor komentarja, zato prosim, nihče ne poda tega komentarja. Končalo se bo v plamenu.

      1.    eliotime3000 je dejal

        V mojem primeru Debian dela vse na mojem računalniku in izkazalo se je, da sem DVD uporabil kot dodaten repo za nadgradnjo iz Squeeze na Wheezy. Tako lahko vsakdo posodablja.

    2.    Fabian je dejal

      No, potem imate pamet uporabnika sistema Windows.
      GNU / Linux je velik za vas.
      pozdrav

  4.   sieg84 je dejal

    to je zanimivo.

  5.   Jorge je dejal

    Ta napaka je zelo pogosta pri namestitvi gentooja na majhne diske, zato v majhnih izvornih datotekah in particiji zmanjka inodov, tudi če ostane 60% prostega prostora. Vsaj priročnik to reši s tipkanjem mke2fs -j -T small / dev / sdaX, verjetno deluje v ubuntuju. Preden igram čudne nastavitve 😛

    1.    Rayonant je dejal

      Kot sem že omenil, lahko z možnostjo -i določite razmerje bajtov inode, obstaja pa tudi možnost, ki jo omenite -T v konfiguracijski datoteki uporablja enega od privzetih načinov z imenom /etc/mke2fs.conf, v v tem primeru bo small uporabil velikost bloka = 1024, velikost inode = 128 in razmerje bajtov inodov = 4096.

  6.   MSX je dejal

    Excelente!
    To je tipična težava, ki ti dolgo poje glavo, dokler ne ugotoviš, od kod prihaja.
    +10 za pojasnilo 😀

    1.    Rayonant je dejal

      Kot pravite, imeli ste se lepo, ko ste mi ubili glavo! Najlepša hvala za komentar, ki ga je poslal nekdo, ki ve toliko, kolikor ste v čast!

  7.   Anthony je dejal

    Odlično !!, naučil sem se še česa in mi je pomagal obnoviti približno 19 MB, tako da sem odstranil staro glavo in obnovil nekaj inodov. Zdaj imam več prostora za namestitev. Ker sem precej novinec v Linuxu, vas vabim, če se vam zdi dobro, objavite prispevek o tem, kako formatirati, da dobite največje število inodov, in ali je to mogoče storiti ob hranjenju informacij o disku ali ne.
    S spoštovanjem in hvala

    1.    Rayonant je dejal

      Kot sem omenil v navedbi na začetku vnosa, je to zelo redek problem in je povezan z majhnimi korenskimi particijami (<10 GB), kot je to v mojem primeru, pri drugih velikostih pa verjetno ne bo. Glede spremembe števila inodov, kot sem že omenil v prispevku, tega ni mogoče storiti brez formatiranja v particijah tipa EXT4, zato informacij na disku ne morete obdržati, ne da bi naredili predhodno varnostno kopijo, za spremembo razmerja bajtov inode uporabite možnost -i v ukazu mke2fs ali eno od možnosti, povezanih z -T (majhna, velika, velika itd.).

  8.   Mario je dejal

    Odlično! Izpostavitev problema, razlaga, zakaj se je zgodilo, njegovi temelji in koraki rešitve! Temu pravim odličen prispevek! Hvala Rayonant!

  9.   Diana Bedoya je dejal

    Hvala za članek, zelo mi je pomagal. Poskusil sem vse, da bi odpravil to napako, in tako, da sem z ustreznostjo odstranil stare glave in njihove odvisnosti, sem lahko znova namestil programe in naredil posodobitve. Hvala vam!

  10.   Jasco je dejal

    Zame se je zgodila ista težava, nič se ni zgodilo in me je postavilo na glavo hahaha. V mojem primeru je imela korenska particija kar nekaj prostega pomnilnika, vendar so bili uporabljeni 100% inodi! Bistvo je, da če že dolgo uporabljate isto distribucijo in sčasoma ne odstranite nobenega starega jedra, je kopičenje grozno. V mojem primeru sem težavo lahko rešil na podoben način, kot ste ga izrazili, le da mi sudo apt-get remove or purge ni uspel in ključ, da bi lahko odstranil te zastarele datoteke jedra, je bila uporaba sudo dpkg –odstrani in –čisti, in eden za drugim sem lahko sprostil inode. Vse, kar se naučiš. Želim si, da bi ta vnos našel že prej, ker bi težavo rešil prej. Hvala, ker si malo skiciral, kaj je z inodami, nisem imel veliko ideje.
    Super blog, lep pozdrav!

  11.   Leo je dejal

    Si groso in čeprav je okoren, se to dokaj dobro razume. Vse sem naredil dobesedno, toda tega, česar ne morem, je odstraniti prejšnje glave linux, ne dovoli mi
    E: dpkg je bil prekinjen, zato morate ročno zagnati "sudo dpkg –configure -a", da odpravite težavo
    Izvršim, kar mi pove, in to me naredi
    Nastavitev odpiranja posnetka (1.4.0-1ubuntu1) ...
    Sledenje (zadnji zadnji klic):
    Datoteka "/ usr / sbin / update-python-modules", vrstica 478, v
    package.install (py_installed)
    Datoteka "/ usr / sbin / update-python-modules", vrstica 112, v namestitvi
    os.symlink (ime datoteke, destpath)
    OSError: [Errno 2] Ni take datoteke ali imenika
    Napaka v sys.excepthook:
    Sledenje (zadnji zadnji klic):
    Datoteka "/usr/lib/python2.7/dist-packages/apport_python_hook.py", vrstica 128, v apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
    Napaka OSE: [Errno 28] Na napravi ni več prostora: '/var/crash/_usr_sbin_update-python-modules.0.crash'

    Prvotna izjema je bila:
    Sledenje (zadnji zadnji klic):
    Datoteka "/ usr / sbin / update-python-modules", vrstica 478, v
    package.install (py_installed)
    Datoteka "/ usr / sbin / update-python-modules", vrstica 112, v namestitvi
    os.symlink (ime datoteke, destpath)
    OSError: [Errno 2] Ni take datoteke ali imenika
    dpkg: odpiranje posnetka napake (–konfiguracija):
    nit je namestila skript po namestitvi vrnil izhodno kodo 1
    dpkg: napaka: ni uspelo odpreti `/ var / lib / dpkg / status 'za zapis stanja baze podatkov: Na napravi ni več prostora
    Vprašanje je, kaj nosim?

  12.   Paul je dejal

    Najlepša hvala! Ta objava mi je zelo pomagala.

  13.   Pang je dejal

    Zdravo!!!

    Ne samo, da rešite zapleteno težavo, ampak se na tej poti učim (in uživam)

  14.   Juan Carlos je dejal

    Živjo. Najprej hvala za prispevek ...

    Drugič, žal mi ni pomagalo. Do njega sem prišel zaradi težave z zlomljenim paketom, ki mi ga sistem ne dovoli rešiti zaradi pomanjkanja prostora, kar je bilo v resnici od tega, kar je bilo tukaj pojasnjeno, vozlišča i.

    Tako sem poskusil očistiti stara jedra, kot je predlagano, vendar mi sistem ne dovoli:
    juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
    Branje seznama paketov ... Končano
    Ustvarjanje drevesa odvisnosti
    Branje informacij o stanju ... Končano
    Morda boste želeli zagnati "apt-get -f install", da jo popravite:
    Naslednji paketi imajo nezadovoljene odvisnosti:
    tzdata-java: Odvisno: tzdata (= 2014i-0ubuntu0.12.04), vendar bo 2014e-0ubuntu0.12.04 nameščen
    E: Neodvisnosti niso izpolnjene. Poskusite "apt-get -f install" brez paketov (ali določite rešitev).

    In ko upoštevam nasvete sistema:
    juan @ juan-P29G: ~ $ sudo apt-get -f namestitev
    Branje seznama paketov ... Končano
    Ustvarjanje drevesa odvisnosti
    Branje informacij o stanju ... Končano
    Popravljanje odvisnosti ... Končano
    Nameščeni bodo naslednji dodatni paketi:
    tzdata
    Posodobljeni bodo naslednji paketi:
    tzdata
    1 posodobljeno, 0 bo nameščenih, 0 za odstranitev in 23 ne posodobljenih.
    1 ni popolnoma nameščen ali odstranjen.
    Naložiti je treba 0 B / 461 kB datotek.
    Po tej operaciji bo sproščenih 31,7 kB.
    Ali želite nadaljevati [DA / N]? s
    Prednastavitev paketov ...
    (Branje baze podatkov ... trenutno nameščenih 893468 datotek ali imenikov.)
    Priprava na zamenjavo tzdata 2014e-0ubuntu0.12.04 (z uporabo… / tzdata_2014i-0ubuntu0.12.04_all.deb)…
    Razpakiranje nadomestka tzdata ...
    dpkg: obdelava napak /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–pakiranje):
    Simbolne povezave za `./usr/share/zoneinfo/posix/America/Santo_Domingo ni mogoče varnostno kopirati: V napravi ni več prostora
    Poročilo »apport« ni bilo napisano, ker sporočilo o napaki pomeni, da je napaka polna diska
    Pri obdelavi so se pojavile napake:
    /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
    E: Sub-proces / usr / bin / dpkg vrnil kodo napake (1)

    Začaran krog ... Kakorkoli, bom videl, kaj lahko storim.

    Lep pozdrav.

  15.   Juan Carlos je dejal

    Še enkrat pozdravljeni ... Vem, kako prekiniti začarani krog.

    S tem ukazom bom odstranil sliko najstarejšega jedra:
    sudo dpkg –odstrani linux-image-3.2.0-29-generic-pae

    S tem dobim 4389 i-vozlišč, dovolj za popravilo pokvarjenega paketa, in nato odstranim glave iz starejšega jedra, kot je navedeno v prispevku.

    In zdaj bom obnovil več i-vozlišč, tako da bom odstranil kup starih jeder ...

    Hvala in lep pozdrav, Juan Carlos.

  16.   anonimni je dejal

    Ni mi dovolil, da izbrišem glave

    Vtipkal sem
    sudo nautilus

    In odšel sem v mapo / usr / src
    Tam sem videl datoteke "headers" in jih izbrisal
    S tem mi je že dovolil oddati naročilo za samodejno odstranitev

  17.   anonimni je dejal

    Hvala vam!! prispevek je morda nekoliko star, vendar je še vedno zelo uporaben, težava je rešena z inodi

  18.   Luis je dejal

    Rayonant: zgledna razlaga.
    Čeprav sem v mojem primeru moral razširiti particijo (z Gparted), mi je vaša objava pomagala razumeti težavo. In po sledenju vaši metodi sem od 90% zasedenih inodov (po razširitvi particije) prešel na le 28%.
    Najlepša hvala. Odslej ga bom uporabljal za odpravo starih jeder (in glav).
    Hvala tudi Juanu Carlosu (imel sem isto težavo).
    Objem

  19.   Hilarij je dejal

    Zanimiva objava,
    V mojem primeru sem padel s 100% na 9%

    root @ pi: / home / pi # apt-get clean
    root @ pi: / home / pi # df -i
    S. files Nodes-i NUsados ​​NLibres NUso% Montirano na
    / dev / root 1915424 1915288 136 100% /

    kasneje sem ugotovil, da se nevihte ntopng dotikajo mojega nosu, jih odpravil in ...

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

    Tachán !!!

    root @ pi: / # df -i
    S. files Nodes-i NUsados ​​NLibres NUso% Montirano na
    / dev / root 1915424 160408 1755016 9% /

    Hvala