Ažuriranje / instaliranje paketa nije uspjelo - Problemi s prostorom - Oslobodite inode

Prije svega komentirajte da je ovo posebna pogreška zbog karakteristika moje korijenske particije i da se to obično ne događa u tipičnim instalacijama 

Za početak ću spomenuti povijest kako se problem dogodio, a zatim kako ga riješiti.

Moj tim je Netbook Sony Vaio m120AL da imam otprilike 3 duge godine s 320 GB tvrdog diska tamo gdje oni žive Windows 7, Čakra , moja radna particija sa Ubuntu 12.04, swap particiju, / home particiju i particiju dodatnih informacija s kojom dijelim informacije Windows.

Iz tih razloga moje korijenske particije na oba sustava po većini su standarda znatno male (oko 6 GB svaka), ali nikad mi nisu stvarale problem jer su više nego dovoljne za sve pakete koje trebam.

Sada, ulazeći u specifičnu situaciju, prije nekoliko dana primjenjujući neka ažuriranja u sustavu Windows Xubuntu (među kojima je i nova jezgra) Vidim da upravitelj ažuriranja pokazuje pogrešku govoreći da pokušava instalirati linux-image-3.2.0-51-generic, ali da je njegova ovisnost linux-headers-3.2.0-51 it neće biti instaliran, detaljno pregledam pogrešku i primjećujem da se dpkg žali da nema slobodnog prostora.

Pogreška govori nešto o ovom stilu, iako nije identična jer je nisam zapisao:

nije mogao stvoriti `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(tijekom obrade` ./usr/src/linux-headers -3.2.0 .43-XNUMX / arch / xtensa / include / asm / coprocessor.h '): Na uređaju nema preostalog prostora

Nekom prethodnom prigodom dogodila mi se ista stvar, ali to je bilo zato što sam dopustio da se skupi nekoliko starih Kernela, a da ih nisam izbrisao, ali ovaj put provjeravam i imam na raspolaganju gotovo 600 Mb prema conky iz onoga što ne razumijem, ali da bih potvrdio da li je možda riječ o pogrešci u načinu na koji sam to konfigurirao ili slično, pokrećem df-h:

df-h

Ali još uvijek imam prostora u /!

Dakle, ne varam se i to je više nego dovoljno prostora za izvođenje ažuriranja (to sam učinio mnogo puta u dugoj godini otkako radim s Xubuntuom) svejedno radim sudo prikladno-čist očistiti pakete koje sam preuzeo i pokušati ponovno, ali s istim rezultatima.

I dalje mi je čudno, ali u svakom slučaju pokušavam se maknuti iz / tema ikona koje uvijek koristim i koje sam puno izmijenio (Faenza y Probuđena) kako biste oslobodili više prostora i tako napokon uspjeli izvršiti ažuriranje, nastavljajući ponovno s vraćanjem na /.

Međutim, u glavi mi je ostala ideja da stvar mora ići negdje drugdje, ali nisam znala koja. Nekoliko sati kasnije, kada pokušam instalirati neke dodatne pakete, ponovno dobijem spomenutu pogrešku i opet je bilo dovoljno prostora za rezervu, pa istražujem.

Internetska pretraga vodi me do nekoliko tema na forumima ubuntu-i, ali odgovor nekih pojedinaca uvijek je isti: nemate dovoljno prostora za brisanje datoteka ili proširenje korijenske particije, ali primijetio sam nešto zajedničko u različitim nitima koje sam pronašao, uvijek korijenska particija koja je imala slobodnog prostora, ali bio je sličan mojem (~ 600-900 Mb) i veličina particije nikada nije prelazila 10 Gb, pa sam se završio uvjeravao da problem mora biti drugi, i ovako sam došao do naslova posta zahvaljujući esta stranici, problem je u tome što je korijenska particija imala 100% korištenih inoda.

Korištenje inoda može se vidjeti pomoću naredbe df -i:

100% korišteni inodi

100% korišteni inodi

A sad dolazi objašnjenje.

Inode su u riječi Dennisa Ritchieja:

Indeks zbog pomalo neobične strukture datotečnog sustava koji je podatke o pristupu datotekama pohranio kao ravan popis na disku, ostavljajući po strani sve hijerarhijske podatke direktorija

i stoga se može dogoditi da za zadani datotečni sustav još uvijek ima slobodnog prostora za pohranu datoteka, ali nema dostupnih inoda za njihovo indeksiranje jer u sustavu ima mnogo datoteka pa se ne mogu stvarati nove.

Poanta je u tome da je broj inoda u particiji ext4 ne može se modificirati (postoje druge vrste sustava kao što su JFX o XFS gdje to nije ograničenje jer je dinamično) to je fiksni broj koji se izračunava kada se particija kreira pomoću mkfs.ext4 prema svojoj veličini s omjerom bajtova po inodu prema preferencijama smještenim u /etc/mke2fs.conf.

Prilikom instaliranja sustava uobičajeno je koristiti zadane postavke koje uključuju relaciju inode = 16384, koja bi za male particije mogla biti prevelika i ne bi stvorila dovoljno (kao u mom slučaju). Jedini način da ga promijenite je stvaranje / formatiranje particije i specificiranje s opcijom -i.

Međutim, ovo za mene nije bila opcija, jer sam već spomenuo da su inodi povezani s brojem postojećih datoteka, pa upotrijebite sljedeću bash skriptu koja se nalazi u stackoverflow i da je povezan na stranici koju ste prije spomenuli kako biste pronašli koji su direktoriji u korijenskoj particiji s više datoteka:

važno je znati da skripta analizira direktorij odakle se zove, to jest, kao što je u mom slučaju bila zainteresirana za analizu / Pa, prvo u terminalu s kojim se moram kretati cd / a zatim ako pozovem skriptu
#!/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_$$

Što daje sljedeći rezultat:

I tu su krivci!

I tu su krivci!

Broj koji se pojavljuje s lijeve strane označava broj prisutnih datoteka, a put označava pridruženi direktorij, jedan redak ispod prikazuje direktorij / var / lib / dpkg / info, ali kao i uvijek ovdje očistim svoje pakete, nema što učiniti.

Međutim, ako prepoznam dva problema, prvi i premda se u catpuri ne penje gore, još nekoliko unosa uključuje ikone Probuđena, tako da ih moram premjestiti da ili da, osim toga objašnjava zašto sam, kad sam to učinio, mogao ažurirati pakete, jer sam oslobodio mnoge inode s korijenske particije kad sam ih premjestio, ali problem se vratio kad sam ih premjestio.

I drugo, sljedeći veći broj unosa povezan je sa zaglavljima nekoliko starih jezgri i shvaćam da postupak koji uvijek koristim za uklanjanje starih jezgri ne uklanja zaglavlja, ono što obično koristim je sljedeće, u terminal pišem:

dpkg --get-selections | grep linux-slika

zrna-rec

što mi pokazuje instalirane kernele, a zatim koristim:

sudo apt-get paket za pročišćavanje

Gdje je paket naziv jezgre o kojoj je riječ, ali to ne uklanja pridružena zaglavlja, pa radim:

dpkg --get-selections | grep linux

stara zaglavlja

A onda nastavljam s uklanjanjem starih zaglavlja, sa:

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

I voilà, ali naravno tu je bilo i pitanje ikona Probuđena pa sam ih odlučio premjestiti na ~ / .icons i učiniti ih dostupnima za cijeli sustav, samo napravim simboličku poveznicu u / usr / share / icons, prvi rezultat df -i To je s uklanjanjem zaglavlja i drugo nakon premještanja ikona.

Inode koje je pustila gomila!

Inode koje je pustila gomila!

Ovim je problem riješen, a pakete mogu instalirati / ažurirati bez problema, nadam se da će ovaj post nekome pomoći ili poslužiti za buduću referencu o instalacijama u malim particijama i demistificirati temu koju su forumi proširili zbog nedostatka Svemira.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Ferdinand Baptist dijo

    Bok, upotrijebi ubuntu podešavanje ( http://ubuntu-tweak.com ) je poput podešavanja za Windows, pomaže vam ukloniti puno smeća i u tom procesu deinstalira stara jezgra na siguran način, međutim, ostavlja prethodni kernel za pokretanje, u nekim prilikama zadnji kernel mi nije radio i uspio sam za ulazak u sustav zahvaljujući tome što ih ne brišete sve.

    1.    Rayonant dijo

      Poznajem ga već dugo, ali uvijek sam to radije radio na svoj način i razumio način na koji stvari funkcioniraju, u svakom slučaju, čak i bez para starih zaglavlja koja bi imala problema, to bi isto predstavljalo u manje-više time so teme ikona, te da na kraju, kao što sam spomenuo, NIJE problem nedostatka prostora već korištenih inoda.

  2.   Mauricijus dijo

    Hvala vam što ste ovo podijelili. Do sada nisam imao taj problem, jer su diskovi koje koristim svi u Linux formatu, bez prozora, jer taj sustav nemam na računalu.

    Dakle, imaću ovo na umu, u slučaju da jednog dana dođem vidjeti ovaj problem.

    1.    Rayonant dijo

      Problem ne dolazi s particijama sa sustavom Windows (to je samo osobenost mog slučaja), već s malim korijenskim particijama, manjim od 10Gb, gdje instalacijski program koristi zadane opcije mke2fs (koja je ta koja formatira particije) i ti Ostavlja se s malim brojem inoda zbog svoje veličine, i da je, kao što je to obično gotovo norma, sve naše particije u EXT4 koji postavlja ovaj broj kada je stvoren i nije ga moguće kasnije izmijeniti.

  3.   gerard H dijo

    Kao što vidite, ovo je ono što ljude drži podalje od linuxa i na kraju se vraćaju Windowsima, kako mislite da uobičajeni korisnik u ovoj situaciji može riješiti problem?
    ne morate gubiti vrijeme popravljajući i konfigurirajući takve stvari i trošeći produktivno vrijeme.
    Miguel de Icaza bio je u pravu s onim što je rekao i zato je odlučio prebaciti se na Mac jer tamo SVE DJELUJE, točka.

    1.    živo dijo

      To je to. U OS X-u sve funkcionira lijepo. U ovom je trenutku beskorisno objašnjavati zašto se dogodio ono što je napisao autor komentara, pa molim vas, nemojte hraniti ovaj komentar. Završit će u plamenu.

      1.    eliotime3000 dijo

        U mom slučaju, Debian radi sve na mom računalu i ispostavilo se da sam DVD koristio kao dodatni repo za nadogradnju sa Squeeze na Wheezy. Dakle, svatko može ažurirati.

    2.    Fabian dijo

      Pa, onda imate pamet korisnika Windows-a.
      GNU / Linux je velik za vas.
      pozdravi

  4.   sieg84 dijo

    ovo je zanimljivo.

  5.   Jorge dijo

    Ova je pogreška vrlo česta pri instaliranju gentoo-a na male diskove, pa toliko malih izvornih datoteka i particije ostane bez inoda, čak i ako ostane 60% slobodnog prostora. Barem ga priručnik popravlja upisivanjem mke2fs -j -T small / dev / sdaX, vjerojatno radi na ubuntuu. Prije nego što igram čudne postavke 😛

    1.    Rayonant dijo

      Točno, kao što sam već spomenuo, možete odrediti omjer bajtova inode pomoću opcije -i, ali postoji i opcija koju spominjete -T koristi jedan od zadanih načina u konfiguracijskoj datoteci koji imenuje /etc/mke2fs.conf, u u ovom će slučaju mali primijeniti veličinu bloka = 1024, veličinu inoda = 128 i omjer bajta-inoda = 4096.

  6.   MSX dijo

    Izvrsno!
    To je tipičan problem koji vam dugo jede glavu dok ne shvatite odakle je potekla.
    +10 za objašnjenje 😀

    1.    Rayonant dijo

      Kao što kažete, dobro ste se proveli ubivši mi glavu! Hvala vam puno na komentaru koji je stigao od nekoga tko zna koliko i vi čast!

  7.   Anthony dijo

    Izvrsno !!, naučio sam još nešto i pomoglo mi je da oporavim oko 19 MB uklanjanjem starog zaglavlja, kao i oporavkom nekih inoda. Sad imam više prostora za instalaciju. Budući da sam prilično početnik u Linuxu, ako mislite da je u redu, potičem vas da objavite post o tome kako formatirati da biste dobili najveći broj inoda i može li se to učiniti zadržavajući podatke o disku ili ne.
    Pozdrav i hvala

    1.    Rayonant dijo

      Kao što sam spomenuo u indikaciji na početku unosa, to je vrlo rijedak problem i povezan je s malim korijenskim particijama (<10 GB), kao što je to moj slučaj, s drugim veličinama je malo vjerojatno da će se dogoditi. Što se tiče promjene broja inoda, kao što sam također spomenuo u unosu, to nije moguće učiniti bez formatiranja u particijama tipa EXT4, tako da niste mogli zadržati podatke na disku bez prethodne sigurnosne kopije, da biste promijenili inode omjera bajtova, upotrijebite opciju -i u naredbi mke2fs ili jednu od opcija povezanih s -T (mala, velika, velika itd.).

  8.   Mario dijo

    Izvrsno! Izlaganje problema, objašnjenje zašto se to dogodilo, njegovi temelji i koraci rješenja! Ovo nazivam izvrsnim doprinosom! Hvala Rayonant!

  9.   Diana Bedoya dijo

    Hvala na članku, puno mi je pomogao. Pokušao sam sve kako bih prevladao ovu pogrešku i uklanjanjem starih zaglavlja i njihovih ovisnosti sa sposobnošću uspio sam ponovno instalirati programe i obaviti ažuriranja. Hvala vam!

  10.   Jasco dijo

    I meni se dogodio isti problem, ništa se nije dogodilo, i doveo me naopako hahaha. U mom slučaju, korijenska je particija imala poprilično slobodne memorije, ali bila je sa 100% korištenih inoda! Poanta je u tome da ako već duže vrijeme upotrebljavate istu distribuciju i ne uklonite stare jezgre s vremenom, zaostatak je strašan. U mom slučaju uspio sam riješiti problem na sličan način kako ste ga vi postavili, samo što mi sudo apt-get remove ili purge nije radio, a ključ za uklanjanje tih korištenih datoteka jezgre bio je korištenje sudo dpkg –ukloni i –pročisti, i jedan po jedan uspio sam osloboditi inode. Sve ono što naučite. Volio bih da sam ovaj zapis pronašao ranije jer bih stvar riješio prije. Hvala što ste malo skicirali što su to inode, nisam imao previše pojma.
    Sjajan blog, pozdrav!

  11.   Lav dijo

    Vi ste groso i iako je glomazan to se prilično dobro razumije. Sve sam učinio do slova, ali ono što ne mogu je ukloniti prethodna zaglavlja linux-a, ne dopušta mi, postavlja me
    E: dpkg je prekinut, morate ručno pokrenuti "sudo dpkg –configure -a" da biste riješili problem
    Izvršim ono što mi kaže i učini me
    Postavljanje openshot-a (1.4.0-1ubuntu1) ...
    Traceback (najnoviji zadnji poziv):
    Datoteka "/ usr / sbin / update-python-modules", redak 478, u
    package.install (py_installed)
    Datoteka "/ usr / sbin / update-python-modules", redak 112, u instalaciji
    os.symlink (ime datoteke, destpath)
    OSError: [Errno 2] Nema takve datoteke ili direktorija
    Pogreška u sys.excepthook:
    Traceback (najnoviji zadnji poziv):
    Datoteka "/usr/lib/python2.7/dist-packages/apport_python_hook.py", redak 128, u apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
    OSError: [Errno 28] Na uređaju nema više mjesta: '/var/crash/_usr_sbin_update-python-modules.0.crash'

    Izvorna iznimka bila je:
    Traceback (najnoviji zadnji poziv):
    Datoteka "/ usr / sbin / update-python-modules", redak 478, u
    package.install (py_installed)
    Datoteka "/ usr / sbin / update-python-modules", redak 112, u instalaciji
    os.symlink (ime datoteke, destpath)
    OSError: [Errno 2] Nema takve datoteke ili direktorija
    dpkg: pogreška obrade openshot (–konfiguriraj):
    nit je instalirao skriptu nakon instalacije vratio je izlazni kôd pogreške 1
    dpkg: pogreška: nije uspjelo otvoriti `/ var / lib / dpkg / status 'za pisanje statusa baze podataka: Na uređaju nije preostalo prostora
    Pitanje je, što nosim?

  12.   Pavle dijo

    Hvala puno! Ovaj post mi je puno pomogao.

  13.   bol dijo

    Hej!!!

    Ne samo da rješavate škakljiv problem, već usput učim (i uživam)

  14.   Juan Carlos dijo

    Bok. Prije svega, hvala na postu ...

    Drugo, nažalost, nije mi pomoglo. Došao sam mu zbog problema s pokvarenim paketom, što mi sustav ne dopušta da riješim zbog nedostatka prostora, što je u stvarnosti od onoga što je ovdje objašnjeno bili čvorovi i.

    Pokušao sam očistiti stare jezgre, kako je predloženo, ali sustav mi to ne dopušta:
    juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
    Čitanje popisa paketa ... Gotovo
    Stvaranje stabla ovisnosti
    Čitanje podataka o statusu ... Gotovo
    Možda biste trebali pokrenuti "apt-get -f install" da biste je ispravili:
    Sljedeći paketi imaju nezadovoljene ovisnosti:
    tzdata-java: Ovisi: tzdata (= 2014i-0ubuntu0.12.04), ali 2014e-0ubuntu0.12.04 će biti instaliran
    E: Ovisnosti nisu ispunjene. Pokušajte "apt-get -f install" bez paketa (ili navedite rješenje).

    I kad slijedim savjete sustava:
    juan @ juan-P29G: ~ $ sudo apt-get -f install
    Čitanje popisa paketa ... Gotovo
    Stvaranje stabla ovisnosti
    Čitanje podataka o statusu ... Gotovo
    Ispravljanje ovisnosti ... Gotovo
    Bit će instalirani sljedeći dodatni paketi:
    tzdata
    Ažurirat će se sljedeći paketi:
    tzdata
    1 ažurirano, 0 će biti instalirano, 0 za uklanjanje, a 23 nije ažurirano.
    1 nije u potpunosti instaliran ili uklonjen.
    Potrebno je preuzeti 0 B / 461 kB datoteka.
    Nakon ove operacije bit će objavljeno 31,7 kB.
    Želite li nastaviti [DA / N]? s
    Pretkonfiguriranje paketa ...
    (Čitanje baze podataka ... 893468 datoteka ili direktorija koji su trenutno instalirani.)
    Priprema za zamjenu tzdata 2014e-0ubuntu0.12.04 (pomoću… / tzdata_2014i-0ubuntu0.12.04_all.deb)…
    Raspakiravanje zamjene za tzdata ...
    dpkg: obrada pogreške /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–unpack):
    Nije moguće napraviti sigurnosnu kopiju simboličke veze za `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Na uređaju nema prostora
    Izvješće "apport" nije napisano jer poruka o pogrešci znači da je pogreška puna diska
    Tijekom obrade naišle su na pogreške:
    /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
    E: Sub-proces / usr / bin / dpkg vratio kod pogreške (1)

    Začarani krug ... U svakom slučaju, vidjet ću što mogu učiniti.

    Pozdrav.

  15.   Juan Carlos dijo

    Pozdrav opet ... znam kako prekinuti začarani krug.

    Uklonit ću sliku najstarijeg jezgra ovom naredbom:
    sudo dpkg –ukloni linux-image-3.2.0-29-generic-pae

    Uz to dobivam 4389 i-čvorova, dovoljno da popravim slomljeni paket, a zatim uklonim zaglavlja sa starijeg jezgra kao što je naznačeno u postu.

    A sada ću oporaviti još i-čvorova uklanjanjem gomile starih jezgri ...

    Hvala i pozdrav, Juan Carlos.

  16.   anoniman dijo

    Nije mi dopustio da izbrišem zaglavlja

    Utipkao sam
    sudo nautilus

    I otišao sam u mapu / usr / src
    Tamo sam vidio datoteke "zaglavlja" i izbrisao sam ih
    Uz to mi je već dopustio da dam nalog za automatsko uklanjanje

  17.   anoniman dijo

    Hvala vam!! post je možda malo star, ali i dalje vrlo koristan, problem riješen s inodima

  18.   Luis dijo

    Rayonant: uzorno objašnjenje.
    Iako sam, u mom slučaju, morao proširiti particiju (s Gpartedom), vaš mi je post pomogao da shvatim problem. I nakon što slijedim vašu metodu, prešao sam sa 90% zauzetih inoda (nakon što sam proširio particiju) na samo 28%.
    Hvala puno. Od sada ću ga koristiti za uklanjanje starih jezgri (i zaglavlja).
    Hvala i Juanu Carlosu (imao sam isti problem).
    Zagrljaj

  19.   Hilarije dijo

    Zanimljiv post,
    U mom slučaju smanjio sam se sa 100% na 9%

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

    kasnije sam otkrio da mi ntopng oluje dodiruju nos, eliminirao sam ih i ...

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

    Tachán !!!

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

    Hvala ti