Betreibt man ein Ubuntu- oder Debian-System über einen längeren Zeitraum, so sammeln sich über Monate und Jahre, die das System im Normalfall ohne Probleme läuft, eine ganze Reihe von Linux-Kernel an. Bei Sicherheitsupdates oder auch Upgrades auf ein neueres Ubuntu oder Debian werden die alten Kernel nicht deinstalliert. So hat man bei Problemen mit dem neuen Kernel, den „Alten“ noch zur Verfügung und kann so das System booten. Allerdings belegen der Linux-Kernel mit seinen Headern eine ganze Menge Platz, so dass man früher oder später etwas aufräumen sollte. Das geht entweder von Hand, oder besser mit einem „simplen“ Befehl, der das alte Zeug in einem Rutsch von der Platte wirft.
Über Synaptic kann man sich die alten Kernel in einer graphischen Umgebung raussuchen und sie dann deinstallieren. Doch dazu müsste man sich nach und nach allen alten Ballast raussuchen und von Hand zur Deinstallation vormerken. Das ist umständlich und dauert durchaus ein kleines Weilchen, erst recht wenn sich im Ubuntu-System nach einer ganzen Weile eine Menge Kernel angesammelt haben. Mit ein bisschen Shell-Magie deinstalliert man jedoch mit nur einem Kommando alle alten Linux-Kernel inklusive ihren Headern. Via…
…löscht ihr alle alten Kernel inklusive den jeweils zusätzlich installierten Kernel-Headern von der Festplatte. Der aktuelle Kernel des Systems bleibt dabei komplett unangetastet. Ihr müsst also keine Angst haben, dass ihr nach dem Ausführen des Befehls gleich ganz ohne Kernel dasteht und euren Computer nicht mehr booten könnt. Trotzdem solltet ihr einen kritischen Blick auf die Liste der zu deinstallierenden Pakete werfen, nicht dass aus irgendeinem Grund eine Abhängigkeit quer schießt und das halbe System von der Platte fliegt.
$ dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Lese Status-Informationen ein... Fertig Die folgenden Pakete werden ENTFERNT: linux-headers-2.6.31-13* linux-headers-2.6.31-13-generic* linux-headers-2.6.31-14* linux-headers-2.6.31-14-generic* linux-image-2.6.27-14-generic* linux-image-2.6.31-13-generic* linux-image-2.6.31-14-generic* linux-restricted-modules-2.6.27-14-generic* 0 aktualisiert, 0 neu installiert, 8 zu entfernen und 10 nicht aktualisiert. Nach dieser Operation werden 441MB Plattenplatz freigegeben. Möchten Sie fortfahren [J/n]?
Allerdings würde ich generell ältere Kernel erst dann von der Festplatte löschen, wenn ich weiß dass ich mit dem aktuellen Linux-Kernel definitiv keine Probleme habe. Lasst nach einem Kernelupdate den alten Kernel daher also noch ein paar Tage oder gar ein paar Wochen auf eurem Rechner. Die dadurch verbrauchten MByte lassen sich meist verschmerzen. Das Aufräumen könnt ihr ja immer noch nachholen, mehr als einen Befehl braucht es dazu ja nicht.
dpkg -l ‚linux-[ihs]*‘ | sed ……