Det gick inte att uppdatera / installera paket - rymdproblem - frigöra inoder

Först och främst, kommentera att detta är ett särskilt fel på grund av egenskaperna hos min rotpartition och att det vanligtvis inte händer i typiska installationer 

Till att börja med kommer jag att nämna historien om hur problemet hände och sedan hur man löser det.

Mitt team är en Sony Vaio m120AL netbook som jag har i ungefär 3 långa år med en 320 GB hårddisk där de samexisterar Windows 7, Chakra , min arbetspartition med Xubuntu 12.04, swap-partitionen, / home-partitionen och en ytterligare informationspartition som jag delar information med Windows.

Av dessa skäl är mina rotpartitioner på båda systemen betydligt små av de flesta standarder (cirka 6 GB vardera) men de har aldrig gett mig ett problem eftersom de är mer än tillräckligt för alla paket jag behöver.

Nu, när du går in i den specifika situationen, för några dagar sedan applicera några uppdateringar i Xubuntu (som inkluderade en ny kärna) Jag ser att uppdateringshanteraren visar ett fel som säger att den försöker installera linux-image-3.2.0-51-generic men att dess beroende linux-headers-3.2.0-51 kommer inte att installeras, jag granskar felet i detalj och jag märker att dpkg klagar på att det inte finns något ledigt utrymme.

Felet sa något av den här stilen, men inte identiskt eftersom jag inte skrev ner det:

kunde inte skapa '/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new' (under bearbetning './usr/src/linux-headers -3.2.0-43 / arch / xtensa / include / asm / coprocessor.h '): Inget utrymme kvar på enheten

Vid något tidigare tillfälle hände samma sak med mig men det berodde på att jag hade låtit flera gamla kärnor ackumuleras utan att ta bort dem, men den här gången kontrollerar jag och jag har praktiskt taget 600 Mb tillgängligt enligt conky från vad jag inte förstår, men för att bekräfta om det kan vara ett fel i hur jag hade konfigurerat det eller liknande kör jag en df -h:

df -h

Men jag har fortfarande plats i /!

Så jag tar inte fel och det är mer än tillräckligt med utrymme för att utföra uppdateringen (jag har gjort det på det här sättet många gånger under det långa året sedan jag har varit med Xubuntu) ändå gör jag en sudo apt-få rena för att rengöra paketen som jag har laddat ner och försök igen, men med samma resultat.

Jag tycker fortfarande att det är konstigt men ändå försöker jag flytta ut från / ikonteman som jag alltid använder och som jag har ändrat mycket (faenza y vaknat) för att frigöra mer utrymme, och därmed lyckas jag äntligen utföra uppdateringen och fortsätter igen för att återställa dem till /.

Men tanken kvarstod i mitt huvud att saken måste gå någon annanstans men jag visste inte vilken. Några timmar senare när jag försöker installera några extra paket får jag det ovan nämnda felet igen, och återigen fanns det tillräckligt med utrymme att spara, så jag ägnar mig åt att undersöka.

En internetsökning leder mig till flera trådar på forumet för ubuntu-är, men svaret för vissa individer där är alltid detsamma: du har inte tillräckligt med utrymme för att radera filer eller utöka rotpartitionen, men jag märkte något gemensamt i de olika trådarna som jag hittade, alltid rotpartitionen som hade ledigt utrymme, men det liknade min (~ 600-900 Mb) och partitionens storlek översteg aldrig 10 Gb så jag slutade övertyga mig själv om att problemet måste vara ett annat, och det var så jag kom till titeln på inlägget tack vare detta sidan är problemet att rotpartitionen hade 100% av de inoder som användes.

Användningen av inoderna kan ses med kommandot df -i:

100% använda inoder

100% använda inoder

Och nu kommer förklaringen.

Inoderna står i Dennis Ritchies ord:

Ett index på grund av den något ovanliga strukturen hos ett filsystem som lagrade åtkomstinformationen till filerna som en platt lista på hårddisken, och lämnar all hierarkisk information i katalogerna

och därför kan det hända att det för ett visst filsystem fortfarande finns ledigt utrymme för att lagra filer, men det finns inga inoder tillgängliga för att indexera dem eftersom det finns många filer i systemet och därför kan inga nya skapas.

Saken är, antalet inoder i en partition EXT4 kan inte modifieras (det finns andra typer av system som JFX o XFS där detta inte är en begränsning eftersom det är dynamiskt) är det ett fast antal som beräknas när partitionen skapas med mkfs.ext4 enligt dess storlek med ett förhållande av byte per inod enligt de preferenser som finns i /etc/mke2fs.conf.

När du installerar systemet är det vanligt att använda standardinställningarna som inkluderar en inode = 16384-relation, som för små partitioner kan vara för stor och inte skapa tillräckligt (som i mitt fall). Det enda sättet att ändra det är genom att skapa / formatera partitionen och specificera den med alternativet -i.

Detta var dock inte ett alternativ för mig, eftersom jag redan nämnde inoderna är relaterade till antalet befintliga filer, så använd följande bash-skript som finns i stackoverflow och att det är länkat på sidan du nämnde tidigare för att hitta vilka som var katalogerna i rotpartitionen med fler filer:

viktigt att veta att manuset analyserar katalogen varifrån den heter, det vill säga som i mitt fall var jag intresserad av att analysera / Först i terminalen måste jag flytta med cd / och sedan för att ringa manuset
#!/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_$$

Vilket ger följande resultat:

Och här är de skyldiga!

Och här är de skyldiga!

Siffran som visas till vänster indikerar antalet närvarande filer och sökvägen indikerar den tillhörande katalogen, en rad nedan visas katalogen / var / lib / dpkg / info men som alltid rensar jag mina paket här finns det inget att göra.

Men om jag känner igen två problem, det första och även om catpuraen inte går upp därifrån, innehåller flera fler poster ikonerna vaknat, så jag måste flytta dem ja eller ja, förutom det förklarar varför när jag gjorde det kunde jag uppdatera paketen, eftersom jag frigjorde många inoder från rotpartitionen när jag flyttade dem, men problemet kom tillbaka när jag flyttade dem.

Och för det andra är det näst största antalet poster associerade med rubrikerna på flera gamla kärnor, och jag inser att proceduren som jag alltid använder för att eliminera de gamla kärnorna inte eliminerar rubrikerna, det jag brukar använda är följande, i en terminal jag skriver:

dpkg --get-selections. grep linux-image

kärnor-rec

som visar mig kärnorna installerade och sedan använder jag:

sudo apt-get purge-paket

Var paketet är namnet på kärnan i fråga, men det tar inte bort de associerade rubrikerna så jag gör en:

dpkg --get-selections. grep linux

gamla rubriker

Och sedan tar jag bort de gamla rubrikerna 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

Och voilà, men naturligtvis fanns det också frågan om ikoner vaknat så jag bestämmer mig för att flytta dem till ~ / .icons och för att göra dem tillgängliga för hela systemet gör jag bara en symbolisk länk i / usr / share / ikoner, det första resultatet av df -i Det är med eliminering av rubrikerna och den andra efter att ha flyttat ikonerna.

Inoder släppt av högen!

Inoder släppt av högen!

Med detta är problemet löst, och jag kan installera / uppdatera paket utan problem, jag hoppas att det här inlägget kommer att vara till hjälp för någon, eller tjäna för framtida referens på installationer i små partitioner och avmystifiera ämnet som sprids av forumets brist Av rymden.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Ferdinand Baptist sade

    Hej, använd ubuntu tweak ( http://ubuntu-tweak.com ) är som tuneup för windows, det hjälper dig att ta bort mycket skräp och avinstallerar under tiden de gamla kärnorna säkert, men det lämnar en tidigare kärna att starta, vid vissa tillfällen fungerade den sista kärnan inte för mig och jag lyckades för att komma in i systemet tack för att inte ta bort dem alla.

    1.    Rayonant sade

      Jag har känt honom länge, men jag har alltid föredragit att göra det på mitt sätt och förstå hur saker fungerar, hur som helst, även utan de par gamla rubriker som hade problemet, skulle det ha presenterat detsamma i mer eller mindre tid så Ikon-teman, och att det i slutändan, som jag nämnde, INTE är ett problem med brist på utrymme utan av inoder som används.

  2.   Mauricio sade

    Tack för att du delar det här. Hittills har jag inte haft det problemet, eftersom skivorna jag använder är alla i Linux-format, inga fönster, eftersom jag inte har det systemet på min dator.

    Så detta kommer jag att komma ihåg om jag en dag skulle se det här problemet.

    1.    Rayonant sade

      Problemet kommer inte från att ha partitioner med Windows (det är bara en egenart i mitt fall) utan från att ha små rotpartitioner, mindre än 10 GB där installationsprogrammet använder standardalternativen för mke2fs (vilket är det som formaterar partitionerna) och du Det lämnar ett litet antal inoder för sin storlek, och att som vanligtvis nästan är normen finns alla våra partitioner i EXT4 som ställer in detta nummer när det skapas och det är inte möjligt att ändra det senare.

  3.   gerard H sade

    Som du kan se är detta den typen av saker som håller människor borta från Linux och de hamnar tillbaka till windows. Hur tror du att en vanlig användare i denna situation kan lösa problemet?
    du behöver inte slösa bort tid på att fixa och konfigurera den här typen av saker och slösa bort produktiv tid.
    Miguel de Icaza hade rätt med vad han sa och det är därför han bestämde sig för att byta till Mac för att ALLT FUNGERAR där, period.

    1.    livlig sade

      Det är allt. I OS X fungerar allt vackert .. Det är värdelöst att förklara just nu varför vad författaren av inläggskommentarerna hände, så snälla, mata inte den här kommentaren. Det kommer att sluta i lågan.

      1.    eliotime3000 sade

        I mitt fall fungerar Debian allt på min dator och det visar sig att jag använde DVD: n som en extra repo för att uppgradera från Squeeze till Wheezy. Så vem som helst kan uppdatera.

    2.    fabian sade

      Nåväl, du tänker på en Windows-användare.
      GNU / Linux är stort för dig.
      gäller

  4.   sieg84 sade

    det här är intressant.

  5.   jorge sade

    Det här felet är mycket vanligt när man installerar gentoo på små diskar, så många små källfiler och partitionen tar slut på inoder även om det finns 60% ledigt utrymme kvar. Åtminstone fixar handboken det genom att skriva mke2fs -j -T small / dev / sdaX, det körs antagligen på ubuntu. Innan jag spelar konstiga inställningar 😛

    1.    Rayonant sade

      Exakt, som jag nämnde tidigare kan du ange ett inode-byteförhållande med alternativet -i, men det finns också det alternativ som du nämner -T använder ett av standardlägena i konfigurationsfilen som heter /etc/mke2fs.conf, i i detta fall tillämpar liten en blockstorlek = 1024, inodstorlek = 128 och ett byte-inods-förhållande = 4096.

  6.   MSX sade

    Utmärkt!
    Det är det typiska problemet som äter ditt huvud länge tills du inser var det kom ifrån.
    +10 för förklaring 😀

    1.    Rayonant sade

      Som du säger hade du en bra tid att döda mitt huvud! Tack så mycket för kommentaren, kommer från någon som vet så mycket som du är en ära!

  7.   Antonio sade

    Utmärkt !!, jag har lärt mig något annat, och det har hjälpt mig att återhämta mig 19Mb eller så genom att ta bort ett gammalt sidhuvud, samt återställa några inoder. Nu har jag mer utrymme att installera. Eftersom jag är ganska nybörjare i Linux, uppmuntrar jag dig att göra ett inlägg om hur du formaterar för att få högsta antal inoder och om det kan göras samtidigt som du behåller diskinformation eller inte.
    En hälsning och tack

    1.    Rayonant sade

      Som jag nämnde i en indikation i början av posten är det ett mycket sällsynt problem och är associerat med små rotpartitioner (<10 GB), vilket är mitt fall, med andra storlekar är det osannolikt att det ska inträffa. När det gäller ändringen av antalet inoder, som jag också nämnde i posten, är det inte möjligt att göra det utan att formatera i partitioner typ EXT4, så du kunde inte behålla informationen på disken utan att ha gjort en tidigare säkerhetskopia, till ändra byteförhållandet inoder använd alternativet -i i kommandot mke2fs eller något av alternativen som är associerade med -T (liten, stor, stor etc).

  8.   Mario sade

    Excellent! Beskrivningen av problemet, förklaringen till varför det hände, dess grundval och stegen i lösningen! Jag kallar detta ett utmärkt bidrag! Tack Rayonant!

  9.   Diana Bedoya sade

    Tack för artikeln, det hjälpte mig mycket. Jag hade försökt allt för att övervinna detta fel och genom att ta bort de gamla rubrikerna och deras beroenden med skicklighet kunde jag installera om program och göra uppdateringarna. Tack!

  10.   Jasco sade

    Samma problem har hänt mig, ingenting har hänt och det har fört mig upp och ner hahaha. I mitt fall hade rotpartitionen en hel del ledigt minne, men det var med 100% inoder som användes! Poängen är att om du har använt samma distribution under lång tid och inte tar bort några gamla kärnor över tiden, är eftersläpningen hemsk. I mitt fall kunde jag lösa problemet på ett liknande sätt som du uttryckte det, bara att sudo apt-get remove eller purge inte fungerade för mig och nyckeln till att kunna ta bort de nedlagda kärnfilerna var att använda sudo dpkg –remove and –purge, och en efter en kunde jag släppa inoder. Allt du lär dig. Jag önskar att jag hade hittat denna post tidigare eftersom jag skulle ha löst saken tidigare. Tack för att du skissade lite vad den inoden är, jag visste inte så mycket.
    Bra blogg, hälsningar!

  11.   Leo sade

    Du är en groso och även om det är besvärligt förstås det ganska bra. Jag gjorde allt till punkt och pricka men vad jag inte kan göra är att ta bort de tidigare linux-rubrikerna, det låter mig inte, det sätter mig
    E: dpkg avbröts, du måste köra "sudo dpkg –configure -a" för att rätta till problemet
    Jag utför vad det säger mig och det gör mig
    Ställer in openshot (1.4.0-1ubuntu1) ...
    Spårning (senaste samtalet senast):
    Fil "/ usr / sbin / update-python-modules", rad 478, i
    package.install (py_installed)
    Filen "/ usr / sbin / update-python-modules", rad 112, installerad
    os.symlink (filnamn, destpath)
    OSError: [Errno 2] Ingen sådan fil eller katalog
    Fel i sys.excepthook:
    Spårning (senaste samtalet senast):
    Fil "/usr/lib/python2.7/dist-packages/apport_python_hook.py", rad 128, i apport_excepthook
    os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
    OSError: [Errno 28] Inget utrymme kvar på enheten: '/var/crash/_usr_sbin_update-python-modules.0.crash'

    Ursprungligt undantag var:
    Spårning (senaste samtalet senast):
    Fil "/ usr / sbin / update-python-modules", rad 478, i
    package.install (py_installed)
    Filen "/ usr / sbin / update-python-modules", rad 112, installerad
    os.symlink (filnamn, destpath)
    OSError: [Errno 2] Ingen sådan fil eller katalog
    dpkg: felbearbetning openshot (–konfigurera):
    tråden installerade skriptet efter installationen returnerade felutgångskod 1
    dpkg: fel: det gick inte att öppna `/ var / lib / dpkg / status 'för att skriva databasstatus: inget utrymme kvar på enheten
    Frågan är, vad har jag på mig?

  12.   Paul sade

    Tack så mycket! Det här inlägget hjälpte mig mycket.

  13.   styng sade

    Ole!!!

    Inte bara löser du ett knepigt problem, men jag lär mig (och tycker om) på vägen

  14.   Juan Carlos sade

    Hej. Först och främst tack för inlägget ...

    För det andra, tyvärr hjälpte det mig inte. Jag kom till honom på grund av ett problem med ett trasigt paket, vilket systemet inte tillåter mig att lösa på grund av brist på utrymme, vilket i verkligheten från vad som förklarades här var noderna i.

    Så jag försökte rensa de gamla kärnorna, som föreslagits, men systemet tillåter mig inte:
    juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
    Läser paketlista ... Klar
    Skapa beroendeträd
    Läser statusinformation ... Klar
    Du kanske vill köra "apt-get -f install" för att rätta till det:
    Följande paket har ouppfyllda beroenden:
    tzdata-java: Beror på: tzdata (= 2014i-0ubuntu0.12.04) men 2014e-0ubuntu0.12.04 kommer att installeras
    E: Beroenden inte uppfyllda. Försök "apt-get -f install" utan paket (eller ange en lösning).

    Och när jag följer systemets råd:
    juan @ juan-P29G: ~ $ sudo apt-get -f installation
    Läser paketlista ... Klar
    Skapa beroendeträd
    Läser statusinformation ... Klar
    Korrigera beroenden ... Klar
    Följande extra paket installeras:
    tzdata
    Följande paket kommer att uppdateras:
    tzdata
    1 uppdaterat, 0 kommer att installeras, 0 att ta bort och 23 uppdateras inte.
    1 inte helt installerad eller borttagen.
    0 B / 461 kB filer måste laddas ner.
    31,7 kB släpps efter denna operation.
    Vill du fortsätta [Y / n]? s
    Förkonfigurera paket ...
    (Läser databasen ... 893468 filer eller kataloger som för närvarande är installerade.)
    Förbereder för att ersätta tzdata 2014e-0ubuntu0.12.04 (med ... / tzdata_2014i-0ubuntu0.12.04_all.deb) ...
    Packar upp tzdata-ersättaren ...
    dpkg: felbehandling /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–unpack):
    kan inte säkerhetskopiera symlink för `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Inget utrymme kvar på enheten
    En "apport" -rapport skrevs inte eftersom felmeddelandet anger att felet är fullt
    Fel påträffades under bearbetningen:
    /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
    E: Delprocess / usr / bin / dpkg tillbaka en felkod (1)

    En ond cirkel ... Hur som helst, jag får se vad jag kan göra.

    Hälsningar.

  15.   Juan Carlos sade

    Hej igen ... Jag vet hur man bryter den onda cirkeln.

    Jag tar bort bilden av den äldsta av kärnorna med det här kommandot:
    sudo dpkg - ta bort linux-image-3.2.0-29-generic-pae

    Med det får jag 4389 i-noder, tillräckligt för att reparera det trasiga paketet, och sedan ta bort rubrikerna från den äldre kärnan som anges i inlägget.

    Och nu kommer jag att återställa fler i-noder genom att ta bort en massa gamla kärnor ...

    Tack och hälsningar, Juan Carlos.

  16.   anonym sade

    Han lät mig inte radera rubrikerna

    Jag har skrivit
    sudo nautilus

    Och jag har gått till mappen / usr / src
    Där har jag sett "headers" -filerna och jag har tagit bort dem
    Med det har han redan låtit mig göra beställningen för automatisk borttagning

  17.   anonym sade

    Tack!! inlägget kan vara lite gammalt men ändå mycket användbart, problem löst med inoder

  18.   Luis sade

    Rayonant: en exemplarisk förklaring.
    Även om jag i mitt fall var tvungen att utöka partitionen (med Gparted), har ditt inlägg hjälpt mig att förstå problemet. Och efter att ha följt din metod har jag gått från 90% ockuperade inoder (efter att ha utvidgat partitionen) till bara 28%.
    Tack så mycket. Jag kommer att använda den från och med nu för att eliminera de gamla kärnorna (och rubrikerna).
    Tack också till Juan Carlos (jag hade samma problem).
    En kram.

  19.   Rolig sade

    Intressant inlägg,
    I mitt fall har jag sjunkit från 100% användning till 9%

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

    senare upptäckte jag att ntopng-stormarna rörde mig på näsan, jag eliminerade dem och ...

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

    Tachán !!!

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

    Tack