it-swarm.com.de

Was ist der sicherste Weg, um eine Partition aufzuräumen / zu booten?

Ich habe 200 MB für die Partition /boot zugewiesen. Immer wenn ich versuche, den Kernel zu aktualisieren, erhalte ich eine Fehlermeldung, die besagt, dass /boot voll ist.

Was kann ich tun, um /boot zu bereinigen und die älteren Kernel zu entfernen/zu sichern?

272
koba101

Befehlszeilenmethode:

Überprüfen Sie zuerst Ihre Kernel-Version, damit Sie das verwendete Kernel-Image nicht löschen. Führen Sie dazu Folgendes aus:

uname -r

Führen Sie nun diesen Befehl für eine Liste der installierten Kernel aus:

dpkg --list 'linux-image*' | grep ^ii

und lösche die Kerne, die du nicht mehr brauchst:

Sudo apt-get remove linux-image-VERSION

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:

Sudo apt-get autoremove

Und schließlich können Sie dies ausführen, um die Kernel-Liste zu aktualisieren:

Sudo update-grub
333
PeppeDAlterio

HINWEIS: Dies ist nur möglich, wenn Sie apt nicht zum Aufräumen verwenden können, da es zu 100% voll ist/bootet.

Wenn apt-get nicht funktioniert, weil Ihr/boot-Wert 100% beträgt, müssen Sie zuerst den/boot-Wert löschen. Dies hat wahrscheinlich ein Kernel-Upgrade in einer Teilinstallation ausgelöst, was bedeutet, dass apt ziemlich eingefroren ist und Sie weiterhin auffordert, apt-get -f install auszuführen, 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 Sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r` an. 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 dies mit uname -r überprüfen.

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 Sudo apt-get purge linux-image-3.2.0-56-generic aus (mit Ihrer entsprechenden Version) .

Zum Schluss Sudo apt-get autoremove, um die alten Kernel-Image-Pakete zu löschen, die durch die manuelle Boot-Bereinigung verwaist wurden.

Vorschlag: Führen Sie Sudo apt-get update und Sudo apt-get upgrade aus, um alle Aktualisierungen zu überprüfen, die möglicherweise gesichert wurden, während Sie darauf warten, dass Sie die vollständige/Startpartition ermitteln.

Suggestion2, Review https://help.ubuntu.com/community/AutomaticSecurityUpdates und erwägen, Unattended-Upgrade :: Remove-Unused-Dependencies in /etc/apt/apt.conf.d/ auf true zu setzen. 50 unbeaufsichtigte Upgrades. 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.

282
flickerfly

Dokumentation dazu finden Sie unter https://help.ubuntu.com/community/RemoveOldKernels

Zusammenfassend: Verwenden Sie

Sudo apt-get autoremove --purge
# and/or:
Sudo purge-old-kernels

Das Tool purge-old-kernels kann über Sudo apt install byobu installiert werden. Hier ist die Beschreibung von seiner Manpage:

Dieses Programm entfernt alte Kernel- und Header-Pakete vom System und gibt so Speicherplatz frei. Es wird niemals den aktuell laufenden Kernel entfernen. Standardmäßig werden mindestens die letzten 2 Kernel beibehalten, der Benutzer kann diesen Wert jedoch mit dem Parameter --keep überschreiben.

Wenn Sie eine Lösung zum Kopieren und Einfügen wünschen, schlug ReSearchIT Eng Folgendes vor:

Sudo apt install -y byobu
Sudo purge-old-kernels -y --keep 1
Sudo apt-get -y autoremove --purge
50
peq

Ich fand, dass es viel einfacher ist, die kleine Partition aufzugeben und /boot in den Root zu verschieben. Dies verhindert auch in Zukunft Platzprobleme.

Verschieben Sie zuerst Ihre Daten von der Boot-Partition in den Root-Ordner (ausgeführt als Sudo -s):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

Entfernen (oder kommentieren) Sie den /boot -Eintrag in /etc/fstab:

vim /etc/fstab

Aktualisiere grub und stelle sicher, dass alles korrekt ist:

update-grub

apt sollte nun 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).

7
laktak

Entfernen alter Kernel (um Speicherplatz auf/boot freizugeben) siehe: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot

Sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

Dann renne

Sudo apt-get update
4
Amos Folarin

Sudo apt-get autoremove

Dadurch werden alle bis auf die letzten 2 Kernel entfernt. Getestet unter Ubuntu 16.04 LTS, als /boot zu 100% ausgelastet war und apt-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.

3
DeepSpace101

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 pushen = P

Ich empfehle dieses Tool, bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
Sudo ./install.sh

Dann

Sudo bootnukem --dry-run

Entfernen Sie --dry-run, sobald Sie bestätigt haben, dass es sicher aussieht

1
Jonathan