Ich habe 200 MB für die /boot
Partition zugewiesen . Immer wenn ich versuche, den Kernel zu aktualisieren, erhalte ich eine Fehlermeldung, die besagt, dass der Kernel /boot
voll ist.
Was kann ich tun, /boot
um die älteren Kernel zu bereinigen und zu entfernen / zu sichern?
kernel
boot-partition
koba101
quelle
quelle
Antworten:
Befehlszeilenmethode:
Überprüfen Sie zuerst Ihre Kernel-Version, damit Sie das verwendete Kernel-Image nicht löschen. Führen Sie dazu Folgendes aus:
Führen Sie nun diesen Befehl für eine Liste der installierten Kernel aus:
und lösche die Kerne, die du nicht mehr brauchst:
Ersetzen Sie VERSION durch die Version des Kernels, den Sie entfernen möchten.
Wenn Sie mit dem Entfernen der älteren Kernel fertig sind, können Sie dies ausführen, um alle Pakete zu entfernen, die Sie nicht mehr benötigen:
Und schließlich können Sie dies ausführen, um die Kernel-Liste zu aktualisieren:
quelle
sudo dpkg --list 'linux-image*' | grep ^ii
macht es ein bisschen einfacher, nur die installierten Kernel zu sehen. Auch ich finde dasupdate-grub
ist harmlos aber nicht unbedingt nötig, das läuft automatisch wenn man einen Kernel deinstalliert.sudo dpkg --list 'linux-image*' | grep ^ii | awk '{print $2}' | sort | egrep "[0-9]-generic" | head -n -3 | tr '\n' ' '; echo ""
, um die Liste der Paketnamen abzurufen, mit denen verwendet werden sollsudo apt-get remove
.head -n -3
wird verwendet, um die letzten 3 Kernel im System zu belassen.apt-get remove `dpkg --list 'linux-image*' |grep ^ii | awk '{print $2}'\ | grep -v \`uname -r\``
sudo apt-get autoremove
sollte ausreichen (in der Regel verlassen Sie mit den letzten 3 Kernel)/boot
es voll ist undapt-get
mit dem einen oder anderen Fehlercode fehlschlägt. Die Antwort unten ist ein bisschen „hackier“ (ich muss ich mich Stahl bekennen musste , dass zur Ausgaberm -rf
in/boot
) , aber das einzige, das wahrscheinlich ist , in dieser Situation zu arbeiten.HINWEIS: Dies ist nur möglich, wenn Sie apt nicht zum Aufräumen verwenden können, da es zu 100% voll ist
Wenn apt-get nicht funktioniert, weil Ihr / boot zu 100% ist, müssen Sie zuerst / boot bereinigen. Dies hat wahrscheinlich ein Kernel-Upgrade in einer Teilinstallation ausgelöst, was bedeutet, dass apt ziemlich eingefroren ist und Sie weiterhin zur Ausführung
apt-get -f install
auffordert, obwohl dieser Befehl weiterhin fehlschlägt.Holen Sie sich die Liste der Kernel-Images und finden Sie heraus, worauf Sie verzichten können. Dieser Befehl zeigt installierte Kernel mit Ausnahme des aktuell ausgeführten an
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
. Notieren Sie sich die beiden neuesten Versionen in der Liste. Sie müssen sich keine Sorgen um die laufende Version machen, da diese hier nicht aufgeführt ist. Sie können das mit überprüfenuname -r
.Erstellen Sie einen Befehl zum Löschen aller Dateien in / boot für Kernel, die Sie nicht interessieren. Verwenden Sie die geschweifte Klammer, um gesund zu bleiben. Denken Sie daran, das aktuelle und die beiden neuesten Kernel-Images auszuschließen. Beispiel:
sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-*
. Sie können auch einen Bereich mit der Syntax {80..84} verwenden.sudo apt-get -f install
um aufzuräumen, was bei einer Teilinstallation unangenehm ist.Wenn Sie auf einen Fehler stoßen, der eine Zeile wie "Interner Fehler: Image konnte nicht gefunden werden (/boot/vmlinuz-3.2.0-56-generic)" enthält, führen Sie den Befehl aus
sudo apt-get purge linux-image-3.2.0-56-generic
(mit Ihrer entsprechenden Version).Zum Schluss
sudo apt-get autoremove
löschen Sie die alten Kernel-Image-Pakete, die durch das manuelle Booten verwaist wurden.Vorschlag, Ausführung
sudo apt-get update
undsudo apt-get upgrade
Pflege von Upgrades, die möglicherweise gesichert wurden, während Sie darauf warten, dass Sie die vollständige / Boot-Partition erkennen.In Vorschlag 2 lesen Sie https://help.ubuntu.com/community/AutomaticSecurityUpdates und prüfen Sie, ob Unattended-Upgrade :: Remove-Unused-Dependencies in /etc/apt/apt.conf.d/50unattended-upgrades auf true gesetzt wird. Dies entspricht der Ausführung von autoremove nach jedem Sicherheitsupdate, um sicherzustellen, dass Sie nicht verwendete Kernel bereinigen, aber auch andere Dinge entfernen, von denen es denkt, dass sie nicht verwendet werden, um Sie in Zukunft vor diesem Problem zu bewahren.
quelle
dpkg --purge
einen$ sudo dpkg --purge linux-image-3.13.0-65-generic dpkg: dependency problems prevent removal of linux-image-3.13.0-65-generic: linux-image-extra-3.13.0-65-generic depends on linux-image-3.13.0-65-generic. dpkg: error processing package linux-image-3.13.0-65-generic (--purge): dependency problems - not removing Errors were encountered while processing: linux-image-3.13.0-65-generic
df -i
fand ich heraus, dass mir auch die Inodes ausgehen,/
da es im/usr/src
Dokumentation hierzu finden Sie unter https://help.ubuntu.com/community/RemoveOldKernels
Zusammenfassend: Verwenden Sie
Das
purge-old-kernels
Tool kann über installiert werdensudo apt install byobu
. Hier ist die Beschreibung von seiner Manpage:Wenn Sie eine Lösung zum Kopieren und Einfügen wünschen, schlug ReSearchIT Eng Folgendes vor:
quelle
apt-get autoremove --purge
sollte aber ausreichen.Ich fand, dass es viel einfacher ist, die kleine Partition aufzugeben und
/boot
zur Wurzel zu wechseln . Dies verhindert auch in Zukunft Platzprobleme.Verschieben Sie zuerst Ihre Daten von der Boot-Partition in das Stammverzeichnis (Ausführen als
sudo -s
):Entfernen (oder kommentieren) Sie den
/boot
Eintrag in/etc/fstab
:Aktualisiere grub und stelle sicher, dass alles korrekt ist:
apt
sollte jetzt problemlos upgraden können.Dadurch verbleibt eine unbenutzte 200-MB-Partition (die Sie für etwas anderes verwenden können, wenn Sie die Mühe wert finden).
quelle
Entfernen alter Kernel (um Speicherplatz auf / boot freizugeben) siehe: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot
Dann renne
quelle
sudo apt-get autoremove
Dadurch werden alle bis auf die letzten 2 Kernel entfernt. Getestet auf Ubuntu 16.04 LTS, als die
/boot
Kapazität 100% betrug undapt-get upgrade
das letzte Kernel-Upgrade fehlgeschlagen ist. Das automatische Entfernen des Kernels ist iterativ. Wenn Sie also mehrere Kernel haben, werden diese nacheinander entfernt. Also sei geduldig.quelle
Warum von Hand, wenn Sie es mit einem Werkzeug machen können? Sie wissen, dass Sie es in 30 Sekunden erneut benötigen werden, da es 30 Sekunden dauert, bis sie ein neues Kernel-Update veröffentlicht haben = P
Ich empfehle die Verwendung dieses Tools, bootnukem
Dann
Entfernen
--dry-run
Sie, sobald Sie bestätigt haben, dass es sicher aussiehtquelle