Za početak ću spomenuti istoriju kako se problem dogodio, a zatim kako ga riješiti.
Moj tim je Netbook Sony Vaio m120AL da imam otprilike 3 duge godine sa 320 GB hard diska na kojem oni koegzistiraju Windows 7, Chakra , moja radna particija sa Ubuntu 12.04, swap particiju, / home home i particiju dodatnih informacija s kojom dijelim informacije Windows
Iz tih razloga moje root particije na oba sistema su prema većini 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 primijenili smo neke ispravke u Xubuntu (koji je uključivao novi kernel) Vidim da upravitelj ažuriranja prikazuje grešku govoreći da pokušava instalirati linux-image-3.2.0-51-generic, ali da njegova ovisnost linux-headers-3.2.0-51 neće biti instaliran, detaljno pregledam greš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 '(tokom obrade` ./usr/src/linux-headers -3.2.0 .43-XNUMX / arch / xtensa / include / asm / coprocessor.h '): Na uređaju nije preostalo prostora
Jednom mi se prethodnom prilikom dogodila ista stvar, ali to je bilo zato što sam dozvolio da se nakupi nekoliko starih kernela, a da ih nisam izbrisao, ali ovaj put provjeravam i imam praktično 600 Mb na raspolaganju prema Conky iz onoga što ne razumijem, ali da bih potvrdio da li je možda greška u načinu na koji sam ga konfigurirao ili slično, pokrećem a df -h:
Dakle, ne varam se i to je više nego dovoljno prostora za izvođenje nadogradnje (to sam učinio mnogo puta u dugoj godini otkako radim s Xubuntuom) svejedno radim sudo apt-očisti se očistiti pakete koje sam preuzeo i pokušati ponovo, ali sa 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 Probudio se) kako biste oslobodili više prostora i tako konačno 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, ponovo dobijem spomenutu grešku i opet je bilo dovoljno prostora, pa se posvećujem istraživanju.
Internet pretraga vodi me do nekoliko tema na forumima ubuntu-je, ali odgovor nekih pojedinaca je uvijek 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, tako da 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:
A sad dolazi objašnjenje.
Inodi su u riječi Dennisa Ritchieja:
Indeks zbog pomalo neobične strukture datotečnog sistema koji je podatke o pristupu datotekama pohranio kao ravnu listu na disku, ostavljajući po strani sve hijerarhijske informacije direktorija
i stoga se može dogoditi da za zadati sistem datoteka još uvijek ima slobodnog prostora za pohranu datoteka, ali nema dostupnih inoda za njihovo indeksiranje, jer u sistemu ima mnogo datoteka, pa se stoga ne mogu stvoriti nove.
Poanta je u tome da je broj inoda u particiji EXT4 ne može se modificirati (postoje druge vrste sistema kao što su JFX o XFS gdje ovo 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 sistema, 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 koristite sljedeću bash skriptu koja se nalazi u stackoverflow i da je povezan sa stranicom koju ste prije spomenuli kako biste pronašli koji su direktoriji u korijenskoj particiji s više datoteka:
#!/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:
Broj koji se pojavljuje s lijeve strane označava broj prisutnih datoteka, a put označava pridruženi direktorij, u jednom retku ispod pojavljuje se direktorij / var / lib / dpkg / info, ali kao i uvijek ovdje očistim svoje pakete, nema što raditi.
Međutim, ako prepoznam dva problema, prvi i premda se catpura ne pojavljuje odatle, još nekoliko unosa uključuje ikone Probudio se, 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 kada sam ih premjestio, ali problem se vratio kad sam ih premjestio.
I drugo, sljedeći najveć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
što mi pokazuje instalirane kernele, a zatim koristim:
sudo apt-get paket za pročišćavanje
Gdje je paket ime dotičnog jezgra, ali ovo ne uklanja pridružena zaglavlja, pa radim:
dpkg --get-selections | grep linux
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 Probudio se pa sam ih odlučio premjestiti na ~ / .icons i učiniti ih dostupnima za cijeli sistem, samo napravim simboličku vezu u / usr / share / icons, prvi rezultat df -i To je s uklanjanjem zaglavlja i drugo nakon premještanja ikona.
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 tako širili zbog nedostatka Svemira.
Zdravo, koristi 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 sistem zahvaljujući tome što ih ne brišete sve.
Poznajem ga već dugo, ali uvijek sam radije to radio na svoj način i razumio način na koji stvari funkcioniraju, u svakom slučaju, čak i bez para starih zaglavlja koji su imali problema, to bi isto predstavljalo manje-više time so Icon teme, i da na kraju, kao što sam spomenuo, NIJE problem nedostatka prostora već korištenih inoda.
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 sistem nemam na računaru.
Dakle, imaću ovo na umu, u slučaju da jednog dana dođem vidjeti ovaj problem.
Problem ne dolazi s particijama sa Windowsom (to je samo osobenost mog slučaja), već s malim root particijama, manjim od 10Gb, gdje instalacijski program koristi zadane opcije mke2fs (koja je ta koja formatira particije) i vi 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 se kreira i nije ga moguće kasnije mijenjati.
Kao što vidite, ovo je ono što ljude drži podalje od linuxa i na kraju se vraćaju u Windows. 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 gubeći produktivno vrijeme.
Miguel de Icaza je bio u pravu s onim što je rekao i zato je odlučio prebaciti se na Mac jer SVE TAKO RADI, tačka.
To je to. U OS X-u sve funkcionira lijepo. U ovom trenutku je 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.
U mom slučaju, Debian radi sve na mom računaru i ispostavilo se da sam DVD koristio kao dodatni repo za nadogradnju sa Squeeze na Wheezy. Tako da svako može ažurirati.
Pa, onda imate pamet korisnika Windows-a.
GNU / Linux je velik za vas.
pozdravi
ovo je zanimljivo.
Ova greška je vrlo česta kada instalirate gentoo na male diskove, pa toliko malih izvornih datoteka i particije ostane bez inoda, čak i ako ostane 60% slobodnog prostora. Barem priručnik to rješava upisivanjem mke2fs -j -T small / dev / sdaX, vjerovatno radi na ubuntuu. Prije igranja čudnih postavki 😛
Tačno, kao što sam već spomenuo, možete odrediti odnos bajtova inode pomoću opcije -i, ali postoji i opcija koju spominjete -T koristi jedan od zadanih načina u konfiguracijskoj datoteci koji nosi ime /etc/mke2fs.conf, u u ovom slučaju mali će primijeniti veličinu bloka = 1024, veličinu inoda = 128 i omjer bajta-inoda = 4096.
Excelente!
To je tipičan problem koji vam dugo jede glavu dok ne shvatite odakle je potekla.
+10 za objašnjenje 😀
Kao što kažete, dobro ste se proveli ubivši mi glavu! Hvala vam puno na komentaru koji je stigao od nekoga ko toliko zna koliko ste vi čast!
Izvrsno !!, naučio sam još nešto i pomoglo mi je da oporavim oko 19Mb uklanjanjem starog zaglavlja, kao i oporavkom nekih inoda. Sada 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 zahvalnost
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, kod drugih veličina 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 informacije na disku bez prethodne sigurnosne kopije za promjenu odnosa bajtova inodi koriste opciju -i u naredbi mke2fs ili jednu od opcija povezanih s -T (mala, velika, velika itd.).
Odlicno! Izlaganje problema, objašnjenje zašto se to dogodilo, njegovi temelji i koraci rješenja! Ovo nazivam izvrsnim doprinosom! Hvala Rayonant!
Hvala na članku, puno mi je pomogao. Pokušao sam sve da prebrodim ovu grešku i uklanjanjem starih zaglavlja i njihovih zavisnosti sa sposobnošću uspio sam ponovo instalirati programe i obaviti ažuriranja. Hvala ti!
Isti problem mi se dogodio, ne čini ništa, i doveo me do glave hahaha. U mom slučaju, korijenska particija imala je prilično slobodne memorije, ali bila je sa 100% korištenih inoda! Poanta je u tome da, ako već dugo koristite 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 na koji ste ga vi postavili, samo što mi sudo apt-get remove ili purge nije radio, a ključ za uklanjanje tih korištenih datoteka kernela bio je korištenje sudo dpkg –ukloni i –pročisti, i jedan po jedan uspio sam osloboditi inode. Sve što naučite. Volio bih da sam ovaj zapis pronašao ranije, jer bi to stvar prije riješio. Hvala što ste malo skicirali što je to s inodima, nisam imao previše pojma.
Odličan blog, pozdrav!
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", red 478, u
package.install (py_installed)
Datoteka "/ usr / sbin / update-python-modules", red 112, u instalaciji
os.symlink (ime datoteke, destpath)
OSError: [Errno 2] Nema takve datoteke ili direktorija
Greška u sys.excepthook:
Traceback (najnoviji zadnji poziv):
Datoteka "/usr/lib/python2.7/dist-packages/apport_python_hook.py", red 128, u apport_excepthook
os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
OSError: [Errno 28] Nema više prostora na uređaju: '/var/crash/_usr_sbin_update-python-modules.0.crash'
Izvorni izuzetak bio je:
Traceback (najnoviji zadnji poziv):
Datoteka "/ usr / sbin / update-python-modules", red 478, u
package.install (py_installed)
Datoteka "/ usr / sbin / update-python-modules", red 112, u instalaciji
os.symlink (ime datoteke, destpath)
OSError: [Errno 2] Nema takve datoteke ili direktorija
dpkg: obrada greške openshot (–konfiguracija):
nit je instalirao skriptu nakon instalacije vratio je izlazni kod greške 1
dpkg: greška: nije uspjelo otvoriti `/ var / lib / dpkg / status 'za pisanje statusa baze podataka: Na uređaju nije preostalo prostora
Pitanje je, šta sam obukao?
Hvala puno! Ovaj post mi je puno pomogao.
Hej!!!
Ne samo da rješavate škakljiv problem, već usput učim (i uživam)
Zdravo. Prije svega, hvala na postu ...
Drugo, nažalost, nije mi pomoglo. Došao sam mu zbog problema s pokvarenim paketom, što mi sistem 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 kernele, kako je predloženo, ali sistem mi to ne dopušta:
juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
Čitanje liste paketa ... Gotovo
Stvaranje stabla zavisnosti
Čitanje informacija o statusu ... Gotovo
Možda biste trebali pokrenuti "apt-get -f install" da biste je ispravili:
Sljedeći paketi imaju neispunjene zavisnosti:
tzdata-java: Ovisi: tzdata (= 2014i-0ubuntu0.12.04), ali 2014e-0ubuntu0.12.04 će biti instaliran
E: Zavisnosti nisu ispunjene. Pokušajte "apt-get -f install" bez paketa (ili navedite rješenje).
I kad slijedim savjete sistema:
juan @ juan-P29G: ~ $ sudo apt-get -f instalacija
Čitanje liste paketa ... Gotovo
Stvaranje stabla zavisnosti
Čitanje informacija o statusu ... Gotovo
Ispravljanje zavisnosti ... Gotovo
Sljedeći dodatni paketi će biti instalirani:
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
Pretkonfiguracija paketa ...
(Čitanje baze podataka ... 893468 datoteka ili direktorija koji su trenutno instalirani.)
Priprema za zamjenu tzdata 2014e-0ubuntu0.12.04 (koristeći… / tzdata_2014i-0ubuntu0.12.04_all.deb)…
Raspakivanje zamjene za tzdata ...
dpkg: obrada greške /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–unpack):
ne može napraviti sigurnosnu kopiju simboličke veze za `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Na uređaju nema preostalog prostora
Izvještaj "apport" nije napisan jer poruka o grešci ukazuje da je greška puna diska
Došlo je do grešaka prilikom obrade:
/var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
E: Potproces / usr / bin / dpkg vratio je kôd greške (1)
Začarani krug ... U svakom slučaju, vidjet ću što mogu učiniti.
Pozdrav.
Pozdrav ponovo ... 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 za popravak slomljenog paketa, a zatim uklanjam 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.
Nije mi dozvolio da izbrišem zaglavlja
Ukucao sam
sudo nautilus
I otišao sam u direktorijum / usr / src
Tamo sam vidio datoteke "zaglavlja" i izbrisao sam ih
Uz to mi je već dopustio da dam nalog za automatsko uklanjanje
Hvala ti!! post je možda malo star, ali je i dalje vrlo koristan, problem riješen s inodima
Rayonant: uzorno objašnjenje.
Iako sam, u mom slučaju, morao proširiti particiju (s Gpartedom), vaš post mi je 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 Juan Carlosu (imao sam isti problem).
Zagrljaj
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
/ 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 !!!
root @ pi: / # df -i
S. datoteke Nodes-i NUsados NLibres NUso% Montirano
/ dev / root 1915424 160408 1755016 9% /
Hvala