Aktualizace / instalace balíčků se nezdařila - problémy s vesmírem - uvolnění inodů

Nejprve poznamenejte, že se jedná o konkrétní chybu kvůli charakteristikám mého kořenového oddílu a že se obvykle nestává v typických instalacích 

Na začátek zmíním historii, jak k problému došlo, a poté, jak jej vyřešit.

Můj tým je Netbook Sony Vaio m120AL že mám asi 3 dlouhé roky s 320 GB pevným diskem, kde spolu existují Windows 7, Chakra , můj pracovní oddíl s Xubuntu 12.04, odkládací oddíl, oddíl / home a další informační oddíl, se kterým sdílím informace Windows.

Z těchto důvodů jsou moje kořenové oddíly na obou systémech většinou standardů značně malé (každý kolem 6 GB), ale nikdy mi nedaly problém, protože jsou více než dost pro všechny balíčky, které potřebuji.

Nyní, když jsme vstoupili do konkrétní situace, před několika dny jsme použili některé aktualizace Xubuntu (který zahrnoval nové jádro) Vidím, že správce aktualizací zobrazuje chybu, která říká, že se pokouší nainstalovat linux-image-3.2.0-51-generic, ale že jeho závislost linux-headers-3.2.0-51 nebude nainstalován, podrobně zkontroluji chybu a všimnu si, že si dpkg stěžuje, že není k dispozici žádný prostor.

Chyba řekla něco o tomto stylu, i když není totožná, protože jsem to nezapisoval:

nelze vytvořit `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(při zpracování` ./usr/src/linux-headers -3.2.0-43 / arch / xtensa / include / asm / coprocessor.h '): Na zařízení nezbylo místo

Při nějaké předchozí příležitosti se mi stalo to samé, ale bylo to proto, že jsem dovolil hromadit několik starých jader bez jejich smazání, ale tentokrát to zkontroluji a mám k dispozici prakticky 600 Mb podle Conky z toho, co nerozumím, ale potvrdit, jestli to může být chyba v tom, jak jsem to nakonfiguroval nebo podobně, spustím a df -h:

df -h

Ale stále mám prostor v /!

Takže se nemýlím a to je více než dost místa na provedení aktualizace (udělal jsem to tak mnohokrát za dlouhý rok, protože jsem byl s Xubuntu), stejně dělám sudo apt-get clean vyčistit stažené balíčky a zkusit to znovu, ale se stejnými výsledky.

Stále mi to připadá divné, ale stejně se snažím přesunout z / ikon ikon, které vždy používám a které jsem hodně upravil (Faenza y Probuzený) uvolnit více místa, a tím se konečně podaří provést aktualizaci, a znovu je vrátit do /.

V hlavě mi však zůstávala myšlenka, že věc musí jít jinam, ale nevěděl jsem, kterou. O několik hodin později, když se pokusím nainstalovat nějaké další balíčky, dostanu znovu výše zmíněnou chybu a znovu jsem měl dostatek volného místa, takže provedu svůj průzkum.

Hledání na internetu mě vede na několik vláken na fórech ubuntu-is, ale odpověď některých jednotlivců je vždy stejná: nemáte dostatek místa mazat soubory nebo rozšiřovat kořenový oddíl, ale všiml jsem si něčeho společného v různých vláknech, které jsem našel, vždy kořenový oddíl, který měl volné místo, ale Bylo to podobné jako moje (~ 600-900 Mb) a velikost oddílu nikdy nepřesáhla 10 Gb, takže jsem se přesvědčil, že problém musí být jiný, a tak jsem se dostal k názvu příspěvku díky tento Stránka je problémem v tom, že kořenový oddíl měl 100% použitých inodů.

Použití inodů lze vidět pomocí příkazu df -i:

100% použité inody

100% použité inody

A nyní přichází vysvětlení.

Inody jsou ve slově Dennisa Ritchieho:

Index, kvůli poněkud neobvyklé struktuře souborového systému, který ukládal informace o přístupu k souborům jako plochý seznam na disku, přičemž nechal stranou všechny hierarchické informace o adresářích

a proto se může stát, že pro daný systém souborů je stále volné místo pro ukládání souborů, ale nejsou k dispozici žádné inody pro jejich indexování, protože v systému je mnoho souborů, a proto nelze vytvářet nové.

Jde o to, že počet inodů v oddílu EXT4 nelze upravit (existují i ​​jiné typy systémů, jako např Jfx o XFS pokud to není omezení, protože je to dynamické), jedná se o pevné číslo, které se vypočítá, když je oddíl vytvořen pomocí mkfs.ext4 podle jeho velikosti s poměrem bajtů na inode podle preferencí umístěných v /etc/mke2fs.conf.

Při instalaci systému je obvyklé používat výchozí předvolby, které zahrnují vztah inode = 16384, který pro malé oddíly může být příliš velký a nevytváří dostatečně (jako v mém případě). Jediným způsobem, jak to změnit, je vytvoření / formátování oddílu a jeho zadání pomocí možnosti -i.

To však pro mě nebyla možnost, protože jsem již zmínil, že inody souvisí s počtem existujících souborů, takže použijte následující bash skript nalezený v přetečení zásobníku a že je propojen na stránce, kterou jste zmínili dříve, abyste zjistili, které byly adresáře v kořenovém oddílu s více soubory:

důležité vědět, že skript analyzuje adresář, odkud se volá, tj. v mém případě jsem měl zájem analyzovat / No, nejprve v terminálu, se kterým musím jít cd / a pak, jestli zavolat 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_$$

Což dává následující výsledek:

A tady jsou viníci!

A tady jsou viníci!

Číslo, které se zobrazí vlevo, označuje počet přítomných souborů a cesta označuje přidružený adresář, o jeden řádek níže se zobrazí adresář / var / lib / dpkg / info, ale jako vždy zde čistím své balíčky, není co dělat .

Pokud však rozpoznám dva problémy, první a přestože katpura odtud nejde nahoru, několik dalších položek obsahuje ikony Probuzený, takže je musím přesunout ano nebo ano, kromě toho vysvětluje, proč když jsem to udělal, mohl jsem aktualizovat balíčky, protože jsem uvolnil mnoho inodů z kořenového oddílu, když jsem je přesunul, ale problém se vrátil, když jsem je přemístil.

A za druhé, další větší počet položek je spojen se záhlavími několika starých jader a uvědomuji si, že postup, který vždy používám k odstranění starých jader, nevylučuje záhlaví, to, co obvykle používám, je následující, v terminálu, který píšu :

dpkg --get-výběry | grep linux-image

jádra-rec

což mi ukazuje nainstalovaná jádra a pak používám:

sudo apt-get purge balíček

Kde balíček je název dotyčného jádra, ale tím se neodstraní přidružená záhlaví, takže udělám:

dpkg --get-výběry | grep linux

staré záhlaví

A pak pokračuji v odstraňování starých záhlaví s:

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

A voilà, ale samozřejmě tu byla také otázka ikon Probuzený tak jsem se rozhodl přesunout je do ~ / .icons a zpřístupnit je pro celý systém. Vytvořím symbolický odkaz v / usr / share / icons, první výsledek df -i Je to s odstraněním záhlaví a druhým po přesunutí ikon.

Haldy uvolněné haldy!

Haldy uvolněné haldy!

Díky tomu je problém vyřešen a mohu bez problémů instalovat / aktualizovat balíčky, doufám, že tento příspěvek někomu pomůže, nebo poslouží pro budoucí použití v instalacích v malých oddílech a demystifikuje téma, které se tak šíří fóry nedostatku Vesmíru.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Ferdinand Baptist řekl

    Ahoj, použijte vyladění ubuntu ( http://ubuntu-tweak.com ) je jako tuneup pro Windows, pomůže vám odstranit spoustu odpadků a během procesu bezpečně odinstaluje staré jádro, ponechá však zavádění předchozího jádra, někdy mi poslední jádro nefungovalo a podařilo se mi vstoupit do systému díky nevymazat je všechny.

    1.    Kypřící látka řekl

      Znám ho už dlouho, ale vždy jsem dával přednost tomu, abych to dělal po svém a rozuměl tomu, jak věci fungují, každopádně i bez dvojice starých hlaviček, které měly problém, by se to za více či méně času projevilo stejně. Ikonová témata, a to nakonec, jak jsem již zmínil, NENÍ problémem nedostatku místa, ale použitých inodů.

  2.   Mauritius řekl

    Děkujeme za sdílení. Zatím jsem tento problém neměl, protože disky, které používám, jsou ve formátu Linux, žádná okna, protože tento systém v počítači nemám.

    Takže na to budu pamatovat, kdybych se jednoho dne přišel podívat na tento problém.

    1.    Kypřící látka řekl

      Problém nepochází z toho, že máte oddíly s Windows (je to jen zvláštnost mého případu), ale z toho, že máte malé kořenové oddíly, méně než 10 Gb, kde instalační program používá výchozí možnosti mke2fs (což je ten, který formátuje oddíly) a vy ponechává s malým počtem inodů pro svou velikost a jak je obvykle téměř normou, všechny naše oddíly jsou v EXT4, který nastavuje toto číslo, když je vytvořeno, a není možné jej později upravit.

  3.   Gerardo H. řekl

    Jak vidíte, toto je druh věci, která lidem brání v linuxu a nakonec se vrátí zpět do Windows, jak si myslíte, že běžný uživatel v této situaci může vyřešit problém?
    nemusíte ztrácet čas opravováním a konfigurováním těchto druhů věcí a plýtváním produktivním časem.
    Miguel de Icaza měl pravdu v tom, co řekl, a proto se rozhodl přejít na Mac, protože tam VŠECHNO Funguje, tečka.

    1.    živý řekl

      A je to. V OS X vše funguje krásně .. V tuto chvíli je zbytečné vysvětlovat, proč se stalo, co se stalo v komentářích autora příspěvku, tak prosím, tento komentář nepodávejte. Skončí to plamenem.

      1.    eliotime3000 řekl

        V mém případě Debian funguje všechno na mém PC a ukázalo se, že jsem DVD použil jako další repo pro upgrade ze Squeeze na Wheezy. Takže kdokoli může aktualizovat.

    2.    Fabian řekl

      Pak máte mysl uživatele systému Windows.
      GNU / Linux je pro vás velký.
      jde o

  4.   sieg84 řekl

    to je zajímavé.

  5.   Jorge řekl

    Tato chyba je velmi častá při instalaci gentoo na malé disky, takže mnoho malých zdrojových souborů a oddílu dochází inody, i když zbývá 60% volného místa. Příručka to alespoň řeší zadáním mke2fs -j -T small / dev / sdaX, pravděpodobně běží na ubuntu. Než začnu hrát divná nastavení 😛

    1.    Kypřící látka řekl

      Přesně, jak jsem již zmínil, můžete určit poměr inodových bajtů s volbou -i, ale existuje také možnost, kterou zmiňujete - T používá jeden z výchozích režimů v konfiguračním souboru, který pojmenuje /etc/mke2fs.conf v v tomto případě small použije blockese = 1024, inode size = 128 a byte-inods ratio = 4096.

  6.   MSX řekl

    Výborně!
    Je to typický problém, který vám dlouho žere hlavu, dokud si neuvědomíte, odkud pochází.
    +10 k vysvětlení 😀

    1.    Kypřící látka řekl

      Jak říkáš, zabil jsi mi dobře, dobře jste se zabavili! Děkuji vám za komentář, protože někdo, kdo ví stejně jako vy, je ctí!

  7.   Anthony řekl

    Výborně !!, naučil jsem se něco jiného a pomohlo mi to obnovit přibližně 19 MB odstraněním staré hlavičky a obnovením některých inodů. Nyní mám více prostoru k instalaci. Jelikož jsem v Linuxu docela nováček, pokud si myslíte, že je to v pořádku, doporučuji vám zveřejnit příspěvek o tom, jak formátovat, abyste získali nejvyšší počet inodů, a zda to lze provést při zachování informací o disku nebo ne.
    S pozdravem a díky

    1.    Kypřící látka řekl

      Jak jsem zmínil v indikaci na začátku položky, jedná se o velmi vzácný problém a je spojen s malými kořenovými oddíly (<10 GB), jako je můj případ, u jiných velikostí je nepravděpodobné. Nyní, pokud jde o změnu počtu inodů, jak jsem také zmínil v položce, není možné to udělat bez formátování v oddílech typu EXT4, takže jste nemohli uchovat informace na disku, aniž byste provedli předchozí zálohu, změnit poměr bajtů inody používají volbu -i v příkazu mke2fs nebo některou z možností spojených s -T (malá, velká, velká atd.).

  8.   Mario řekl

    Vynikající! Expozice problému, vysvětlení, proč se to stalo, jeho základy a kroky řešení! Tomu říkám vynikající příspěvek! Díky Rayonant!

  9.   Diana Bedoya řekl

    Díky za článek, hodně mi pomohl. Snažil jsem se všechno překonat tuto chybu a odstraněním starých záhlaví a jejich závislostí pomocí aptitude jsem byl schopen přeinstalovat programy a provádět aktualizace. Děkuji!

  10.   Jasco řekl

    Stejný problém se mi stal, nic se nestalo a přivedlo mě to vzhůru nohama hahaha. V mém případě měl kořenový oddíl docela dost volné paměti, ale byl se 100% použitými inody! Jde o to, že pokud používáte stejnou distribuci po dlouhou dobu a v průběhu času neodstraňujete žádná stará jádra, nevyřízené položky jsou hrozné. V mém případě jsem byl schopen vyřešit problém podobným způsobem, jak jste to uvedli, pouze to, že sudo apt-get remove or purge pro mě nefungovalo a klíčem k odstranění těchto zastaralých souborů jádra bylo použití sudo dpkg –remove and –purge, a jeden po druhém se mi podařilo uvolnit inody. Vše, co se naučíte. Přál bych si, abych tuto položku našel dříve, protože by to záležitost vyřešilo dříve. Díky, že jsem trochu načrtl, co je to inody, neměl jsem moc nápadů.
    Skvělý blog, pozdravy!

  11.   Lev řekl

    Jste groso a přestože je to těžkopádné, dobře se tomu rozumí. Udělal jsem všechno do písmene, ale to, co nemohu udělat, je odstranit předchozí linuxové hlavičky, to mi nedovolí, dává mi to
    E: dpkg byl přerušen, musíte ručně spustit „sudo dpkg –configure -a“, abyste problém vyřešili
    Vykonávám to, co mi říká, a to mě dělá
    Nastavení openshot (1.4.0-1ubuntu1) ...
    Traceback (poslední poslední hovor):
    Soubor "/ usr / sbin / update-python-modules", řádek 478, v
    package.install (py_installed)
    Soubor "/ usr / sbin / update-python-modules", řádek 112, v instalaci
    os.symlink (název souboru, destpath)
    OSError: [Errno 2] Žádný takový soubor nebo adresář neexistuje
    Chyba v sys.excepthook:
    Traceback (poslední poslední hovor):
    Soubor "/usr/lib/python2.7/dist-packages/apport_python_hook.py", řádek 128, v apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
    OSError: [Errno 28] Na zařízení nezbylo místo: '/var/crash/_usr_sbin_update-python-modules.0.crash'

    Původní výjimka byla:
    Traceback (poslední poslední hovor):
    Soubor "/ usr / sbin / update-python-modules", řádek 478, v
    package.install (py_installed)
    Soubor "/ usr / sbin / update-python-modules", řádek 112, v instalaci
    os.symlink (název souboru, destpath)
    OSError: [Errno 2] Žádný takový soubor nebo adresář neexistuje
    dpkg: chyba při zpracování openshot (–configure):
    vlákno nainstalované poinstalační skript vrátil chybový kód ukončení 1
    dpkg: error: failed to open `/ var / lib / dpkg / status 'to write the database status: No space left on device
    Otázkou je, co mám na sobě?

  12.   Pablo řekl

    Díky moc! Tento příspěvek mi hodně pomohl.

  13.   bodavá bolest řekl

    Ole!!!

    Nejenže vyřešíte složitý problém, ale během toho se učím (a užívám si)

  14.   Juan Carlos řekl

    Ahoj. Nejprve děkuji za příspěvek ...

    Zadruhé, bohužel mi to nepomohlo. Přišel jsem k němu kvůli problému rozbitého balíčku, který mi systém neumožňuje vyřešit kvůli nedostatku místa, což ve skutečnosti z toho, co zde bylo vysvětleno, byly uzly i.

    Pokusil jsem se tedy vyčistit stará jádra, jak bylo navrženo, ale systém mi to nedovolí:
    juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
    Čtení seznamu balíků ... Hotovo
    Vytváření stromu závislostí
    Čtení informací o stavu ... Hotovo
    Možná budete chtít spustit „apt-get -f install“, abyste to opravili:
    Následující balíčky mají nesplněné závislosti:
    tzdata-java: Závisí: tzdata (= 2014i-0ubuntu0.12.04), ale 2014e-0ubuntu0.12.04 se bude instalovat
    E: Závislosti nebyly splněny. Zkuste „apt-get -f install“ bez balíčků (nebo zadejte řešení).

    A když se řídím radami systému:
    juan @ juan-P29G: ~ $ sudo apt-get -f install
    Čtení seznamu balíků ... Hotovo
    Vytváření stromu závislostí
    Čtení informací o stavu ... Hotovo
    Oprava závislostí ... Hotovo
    Budou nainstalovány následující balíčky navíc:
    tzdata
    Budou aktualizovány následující balíčky:
    tzdata
    1 aktualizováno, 0 bude nainstalováno, 0 odebráno a 23 neaktualizováno.
    1 není plně nainstalován nebo odstraněn.
    Je třeba stáhnout 0 B / 461 kB souborů.
    Po této operaci bude uvolněno 31,7 kB.
    Chcete pokračovat [Y / n]? s
    Předkonfigurování balíků ...
    (Čtení databáze… 893468 souborů nebo adresářů aktuálně nainstalovaných.)
    Příprava na nahrazení tzdata 2014e-0ubuntu0.12.04 (pomocí… / tzdata_2014i-0ubuntu0.12.04_all.deb)…
    Rozbalení náhrady tzdata ...
    dpkg: chyba při zpracování /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–unpack):
    Nelze zálohovat symbolický odkaz pro `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Na zařízení nezbylo místo
    Zpráva „apport“ nebyla napsána, protože chybová zpráva naznačuje, že chyba je plná na disku
    Při zpracování došlo k chybám:
    /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
    E: Sub-process / usr / bin / dpkg vrátil chybový kód odst. 1)

    Začarovaný kruh ... Každopádně uvidím, co dokážu.

    Zdravím.

  15.   Juan Carlos řekl

    Ahoj znovu ... Vím, jak přerušit začarovaný kruh.

    Tímto příkazem odstraním obrázek nejstaršího jádra:
    sudo dpkg –odstranit linux-image-3.2.0-29-generic-pae

    S tím jsem získal 4389 i-uzlů, dost na opravu rozbitého paketu, a pak odstraním starší záhlaví jádra, jak je uvedeno v příspěvku.

    A teď obnovím více i-uzlů odstraněním spousty starých jader ...

    Díky a pozdravy, Juan Carlos.

  16.   anonymní řekl

    Nedovolil mi odstranit záhlaví

    Zadal jsem
    sudo nautilus

    A šel jsem do složky / usr / src
    Tam jsem viděl soubory „záhlaví“ a odstranil jsem je
    S tím mi již dovolil zadat autoremove objednávku

  17.   anonymní řekl

    Děkuji!! příspěvek může být trochu starý, ale stále velmi užitečný, problém vyřešen pomocí inodů

  18.   Luis řekl

    Rayonant: příkladné vysvětlení.
    I když v mém případě jsem musel rozšířit oddíl (s Gparted), váš příspěvek mi pomohl pochopit problém. A po následování vaší metody jsem přešel z 90% obsazených inodů (po rozšíření oddílu) na pouhých 28%.
    Díky moc. Od nynějška ho použiji k odstranění starých jader (a hlaviček).
    Děkuji také Juanu Carlosovi (měl jsem stejný problém).
    Objetí

  19.   Povedený řekl

    Zajímavý příspěvek,
    V mém případě jsem klesl ze 100% na 9%

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

    později jsem zjistil, že se ntopng bouře dotýkají mého nosu, eliminoval jsem je a ...

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

    Tachán !!!

    root @ pi: / # df -i
    S. soubory Nodes-i NUsados ​​NLibres NUso% Mounted on
    / dev / root 1915424 160408 1755016 9% /

    Děkuji