[LINUX] Vollgestopfte Boot-Partition bereinigen
![Cover Image [LINUX] Vollgestopfte Boot-Partition bereinigen](https://zoliben.com/wp-content/uploads/2018/12/72d1f12edf758d24f5b6db73bac4f297-linux-logo-by-vexels.png)
Selten, aber es kann vorkommen, dass die /boot-Partition auf Linux-Rechnern voll wird. Dann sollten die alten Kernel gelöscht werden, was aber nicht immer einfach ist.
Die Festplattenauslastung kannst du mit folgendem Befehl überprüfen:
df -h

Auf dem Bild ist der Zustand nach der Bereinigung zu sehen, die /boot-Partition ist nun nur noch zu 39% belegt
In diesem Fall bricht das apt-get upgrade während der Kernel-Aktualisierung ab, da kein Platz mehr auf der Partition ist. Es werden fortlaufend Fehler ausgegeben, und es kommt auch vor (wie in meinem Fall), dass deshalb überhaupt keine Aktualisierungen mehr durchgeführt werden, da die vorherigen mit Fehlern abgebrochen wurden.
Da möchte man einfach die alten, ungenutzten Kernel purge-ieren, aber das führt dazu, dass auch der Befehl apt-get purge 4.4.0-1xx-generic fehlschlägt, da die apt-Paketverwaltung zunächst die halb installierten Kernel reparieren möchte.
Die Lösung besteht darin, die nicht mehr genutzten Kernel-Dateien manuell zu löschen (sehr wichtig: vorsichtig vorgehen und den aktuellen sowie den neueren Kernel nicht löschen), und anschließend mit dem dpkg-Paketmanager die alten Kernel einzeln zu entfernen.
Lassen wir uns anzeigen, welchen Kernel das System derzeit verwendet, und notieren wir uns diesen:
uname -a

Der Server verwendet derzeit den Linux-Kernel 4.4.0-140-generic.
Wechseln wir in den /boot-Ordner und listen wir die Dateien auf:
cd /boot ls -l

Wie zu sehen ist, gehören zu jeder Kernel-Version 6 verschiedene Dateien.
VORSEICHT GEWALT, MEHRMALS ÜBERPRÜFEN, DASS WIR NICHT ETWAS FALSCHES LÖSCHEN!!!
Wie zu sehen ist, ist bei allen Kerneln die Endung aller Dateien gleich, somit lässt es sich vereinfachen, aber nur mit Vorsicht! Lösche auf keinen Fall den aktuell verwendeten und neueren Kernel!
sudo rm -rf *4.4.0-134-generic *4.4.0-139-generic
Damit haben wir die Dateien des 134er und des 139er Kernels gelöscht, wodurch etwas Platz freigegeben wird (normalerweise gibt es deutlich mehr alte Kernel), und wir können fortfahren.
Listen wir die alten Kernel auf:
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
Wie zu sehen ist, geht das System noch davon aus, dass die alten Kernel installiert sind, selbst wenn die Dateien nicht mehr an ihrem Platz sind.
Wenn man jetzt ein apt-get purge ‘linuxkernel’ ausführen würde, würde das System zunächst versuchen, die Fehler zu beheben, und dabei die Kernel erneut herunterladen und zu installieren versuchen, womit die Partition sofort wieder voll wäre.
Verwenden wir den DPKG-Paketmanager und löschen wir die Kernel-Pakete manuell einzeln:
sudo dpkg --remove linux-image-4.4.0-134-generic
Wenn wir die Pakete aller überflüssigen Kernel gelöscht haben, führen wir Folgendes aus, um die zuvor abgebrochenen Installationen zu reparieren:
sudo apt-get install -f
Lassen wir die Installationen/Aktualisierungen durchlaufen und löschen dann die nicht mehr benötigten Pakete:
sudo apt-get autoremove
Danach überprüfen wir die Auslastung der /boot-Partition:
df -h
Wenn alles gut gegangen ist, haben wir nichts mehr zu tun.