apt-get: Kein Platz mehr auf dem Gerät (12.04)

42

Ich habe jeden Thread gelesen, den ich finden konnte - sogar diejenigen, die besagen, dass die Frage an anderer Stelle beantwortet wurde, aber keiner von ihnen befasst sich mit dem spezifischen Problem, das ich habe. Update Manager wurde ausgeführt und erzeugte Fehler in Bezug auf nicht erfüllte Abhängigkeiten und schlug die Verwendung von apt-get install -f vor, was mit der folgenden Meldung fehlschlägt:

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

Ich vermute, dass die letzten 5 Wörter Kein Platz mehr auf dem Gerät ist wichtig, aber df und du zeigen beide ausreichend Platz. Ich frage mich also, welches Gerät braucht mehr Platz?

Ausgang von df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 
Don A
quelle
Haben Sie Platz auf der Root-Partition?
don.joey
1
Bitte fügen Sie (i) die Ausgabe von df -hund (ii) die Ausgabe von ein mount. dpkg räumt die Dateien nach Beendigung der Arbeit auf, so dass es den Anschein hat, als hätten Sie genügend Speicherplatz, wenn Sie dies tatsächlich nicht tun. Erwägen Sie, apt-get cleanvor dem Start von dpkg auszuführen.
Januar
1
watch -n 1 df -hin einem Terminal zu überwachen, während Sie das tun apt-get install(es wird ein wenig Sie i / o verlangsamen, aber Sie werden wissen, welches Dateisystem zu klein ist)
Emmanuel
Das Problem tritt auch bei Ubuntu 14.04 und der Kernel-Version 3.13.0.108 auf einem von drei Computern auf. Ich habe mit askubuntu.com/questions/223143/… angefangen, aber die hier gezeigten Antworten stehen in der gleichen Zeile.
XavierStuvw

Antworten:

48

Ich bin gerade auf das gleiche Problem gestoßen. Ich habe an anderer Stelle eine Erwähnung von Inodes gefunden und bin in meinem Terminal gelaufen, um die Inode-Nutzung zu überprüfen:

  df -i 

Dies zeigte eine Inodennutzung von 99%. Obwohl auf meiner Festplatte noch genügend Speicherplatz vorhanden war, konnte ich aufgrund der begrenzten Anzahl von Inodes keine weiteren Dateien erstellen. Einige Datenträgerbereinigungen waren die Lösung für mein Problem.

Kevin
quelle
6
Ich hatte das gleiche Problem durch Kernel-Updates, die alte Kernel nicht automatisch entfernen. Linux-Header jedes Kernel-Updates belegen eine beträchtliche Anzahl von Inodes! --- Meine „sicher“ Lösung war zwei Kernel - Header Verzeichnisse in ein anderes Dateisystem zu verschieben: cd /usr/src ; cp -a linux-headers-3.2.0-3{2,3}* /home/tmp-hdr ; rm -r linux-headers-3.2.0-3{2,3}*, apt-get-install -f, einige andere Header die richtige Art und Weise entfernen: apt-get purge linux-headers-..., die Header aus dem tmp zurück verschieben: cd /usr/src ; cp -a /home/tmp-hdr/* .. Entfernen Sie weitere alte Kernel mit apt-get purge.
Pabouk
1
Bitte ziehen Sie in Betracht, an den Fehlerberichten mit geringer Aktivität teilzunehmen: Fehler # 1089195 in Linux-Headern fressen Ihre Inodes in LTS. , Fehler # 690911 Bei der Installation ohne Formatierung werden alte Kernel nicht entfernt
pabouk
@pabouk Ich frage mich, ob du das dpkg --purge linux-headers-3.2.0-3{2,3}*; apt-get -f installso hätte nutzen können , dass kein Kopieren nötig war?
Jarno
@jarno Es hat lange gedauert, aber ich denke, dass alle Befehle, die die Datenbank dpkg oder apt verwenden, fehlgeschlagen sind. Ich denke, es lag an defekten Abhängigkeiten und anderen Inkonsistenzen, die durch eine unzureichende Anzahl von Inodes während eines automatischen Upgrades verursacht wurden.
Pabouk
Die erforderliche Datenträgerbereinigung kann durchgeführt werden, sudo linux-purge --fixsobald das Skript veröffentlicht wurde.
jarno
37

Ich denke, Ihre Boot-Partition ist voll mit alten Kernel-Images, und es ist kein Platz mehr für das neue apt-get, das installiert werden soll. Du kannst Tippen

dpkg -l linux-headers-\* linux-image-\* | grep ^ii

in ein Terminalfenster. Wenn ich das tue, bekomme ich

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            amd64        Generic Linux kernel headers

Da ich schon einige habe, konnte ich einige der ältesten mit löschen

sudo apt-get remove linux-headers-3.8.0-18

Wenn dies apt-getfehlschlägt, weil einige Paketabhängigkeiten fehlen (die Sie aufgrund fehlender freier Inodes nicht installieren können), können Sie dpkgstattdessen direkt auf Folgendes zurückgreifen :

sudo dpkg --remove linux-headers-3.8.0-18

Machen Sie das ein paar Mal mit Ihrem ältesten linux-headers-*und Sie sollten Platz haben.

Marc
quelle
4
Dies bringt das andere Problem ans Licht. Jedes Mal, wenn ich versuche, dpkg auszuführen, wird mir mitgeteilt, dass es eine nicht erfüllte Abhängigkeit hat. Die folgenden Pakete weisen nicht erfüllte Abhängigkeiten auf: linux-headers-3.5.0-36-generic: Hängt ab: linux-headers-3.5.0-36, ist es aber nicht installiert werden und das ist das Ding, das nicht installiert werden kann, weil nicht genügend Speicherplatz vorhanden ist
Don A
Vielleicht ist eine Sicherung Ihrer Benutzerdateien in Ordnung, bevor Sie sich mit Ihrer Boot-Partition anlegen? Ich hatte noch nie Probleme damit, aber wenn doch, hätte ich alles, was ich für eine Neuinstallation brauchte. Natürlich mache ich sowieso jeden Tag ein Backup.
Marc
Ich hatte gehofft, dass ich mich nicht mit der Boot-Partition anlegen musste und dass es einen Weg gab, aus dem endlosen Kreislauf der Abhängigkeiten auszubrechen. Ich sehe jetzt, dass es wahrscheinlich einfacher sein wird, Daten zu sichern und von vorne zu beginnen. Jetzt, da ich weiß, wie wichtig es ist, ältere Gegenstände zu entfernen, werde ich es mir zur Gewohnheit machen. Vielen Dank an alle für ihre Hilfe.
Don A
Ganz und gar nicht . . . Sichern ist immer eine gute Idee, und Sie haben nicht wirklich viel mit der Boot-Partition zu tun, sondern deinstallieren nur einige Pakete mit apt-get. Es sollte ein Kinderspiel sein. Ich habe nur vorgeschlagen, Ihre Daten zu sichern, weil ich immer vorschlage, Daten zu sichern, wenn Sie ein Problem haben (oder auch nicht!). Ich habe diese Befehle tatsächlich auf meinem eigenen System ausgeführt, um sie zu testen. Das Entfernen dauerte drei Minuten linux-headers-3.8.0-18.
Marc
1
Wenn es für erneut fehlschlägt sudo dpkg --remove linux-headers-3.8.0-18, entfernen Sie sudo dpkg --remove linux-headers-3.8.0-18-genericund es wird den anderen Header mit sich nehmen.
Theson
16

Ich habe sudo apt-get autoremoveein paar alte Kernel-Header-Pakete verwendet und sie entfernt. Gut danach zu gehen.

Frank Sfalanga Jr.
quelle
In meinem Fall hat sich apt-get geweigert, eine automatische Entfernung durchzuführen, wobei der Tatsache Vorrang eingeräumt wurde, dass ein Paket kaputt war, das aussortiert werden musste. Welches defekte Paket war durch die Sättigung der Inode verursacht worden? Siehe auch diesen AskUbuntu-Thread
XavierStuvw
Nun, das hat mich gerettet! Nach einem Update wurde meine x-Sitzung nie gestartet, nur um sich erneut anzumelden, und ich bekam oft die Nachricht, dass kein Platz mehr vorhanden ist. Ich dachte, ich
müsste
1
Lol Ich kann das nicht ausführen, weil ich zu viele Dateien habe ...
Brian Leishman
2

Soweit ich weiß, liegt das Limit der Inodes in Linux ext * -Dateisystemen bei rund 4 Milliarden, aber nicht weniger, was eine enorme Menge an Dateien darstellt. Ihr Problem ist also, dass etwas viele Dateien generiert. Ich kann Ihnen vorschlagen, dies zuerst zu überprüfen: http://blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes Sie finden also, was die Inodes Ihres FS füllt. Ich kann auch vorschlagen, den Apt-Cache zu reinigen:

sudo apt-get clean

und

sudo apt-get autoclean
Stefan
quelle