Alte Kernel in Ubuntu entfernen

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

Bei Ubuntu Installationen (vor Ubuntu Version 15.10) mit separater /boot-Partition kann diese nach Installation von mehreren Updates volllaufen. Das Problem tritt auf, weil ältere Kernel Versionen nicht automatisch entfernt werden. In diesem Artikel zeigen wir, wie Sie ältere Kernel Versionen manuell deinstallieren, und damit Speicherplatz in der /boot-Partition frei machen.

Problem

Durch die Installation von neuen Kernel Versionen mittels apt-get upgrade befinden sich mit der Zeit immer mehr Kernel Versionen in /boot. Durch einen Aufruf von apt-get autoremove sollten ältere Kernel Versionen automatisch entfernt werden. Aufgrund eines Bugs werden jedoch Kernel Pakete als manuell installiert markiert, was das automatische Entfernen der älteren Kernel Versionen verhindert.[1][2][3]

Betroffene Systeme:

Workarounds

Manuelles Deinstallieren alter Kernel

Sie können ältere Kernel Versionen manuell deinstallieren.

Dazu rufen Sie zuerst die Liste der installierten Pakete ab (im Beispiel hier zeigen wir ein Ubuntu 14.04 mit Kernel Version 3.13.*):

user@ubuntu-14-04:~$ dpkg -l | awk '{print $2}' | grep -i 3.13 
linux-headers-3.13.0-67
linux-headers-3.13.0-67-generic
linux-headers-3.13.0-68
linux-headers-3.13.0-68-generic
linux-headers-3.13.0-74
linux-headers-3.13.0-74-generic
linux-image-3.13.0-67-generic
linux-image-3.13.0-68-generic
linux-image-3.13.0-74-generic
linux-image-extra-3.13.0-67-generic
linux-image-extra-3.13.0-68-generic
linux-image-extra-3.13.0-74-generic
linux-signed-image-3.13.0-67-generic
linux-signed-image-3.13.0-68-generic
linux-signed-image-3.13.0-74-generic

Fragen Sie nun die aktuell verwendete Kernel Version ab (im Beispiel 3.13.0-74). Diese Kernel Version darf NICHT entfernt werden!

user@ubuntu-14-04:~$ uname -a
Linux ubuntu-14-04 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Ältere Kernel Versionen können Sie nun mittels sudo apt-get purge ... entfernen. Geben Sie dabei alle Pakete an. Achten Sie darauf, dass Sie ausschließlich Pakete der älteren Kernel Versionen entfernen und die Pakete der aktuell verwendeten Version belassen. Im Beispiel hier entfernen wir die Pakete der älteren Kernel Version 3.13.0-67:

user@ubuntu-14-04:~$ sudo apt-get purge linux-headers-3.13.0-67 linux-headers-3.13.0-67-generic linux-image-3.13.0-67-generic linux-image-extra-3.13.0-67-generic linux-signed-image-3.13.0-67-generic

apt-mark und apt-get autoremove

Alternativ können Sie die fälschlicherweise als manuell installiert markierten Kernel Pakete als automatisch installiert markieren:

sudo apt-mark auto $(dpkg -l | grep -e "^ii" | awk '{print $2}' | grep -e linux-signed-image-.*-generic -e linux-image-.*-generic -e linux-headers-.*-generic)

Danach überprüfen Sie, welchen Kernel Sie gerade verwenden und welche Kernel Versionen nach einem apt-get autoremove erhalten bleiben würden:

uname -r
cat /etc/apt/apt.conf.d/01autoremove-kernels

Beispiel:

wfischer@ubuntu-14-04:~$ uname -a
Linux ubuntu-14-04 3.13.0-95-generic #142-Ubuntu SMP Fri Aug 12 17:00:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
wfischer@tpw:~$ cat /etc/apt/apt.conf.d/01autoremove-kernels
// DO NOT EDIT! File autogenerated by /etc/kernel/postinst.d/apt-auto-removal
APT::NeverAutoRemove
{
   "^linux-image-3\.13\.0-87-generic$";
   "^linux-image-3\.13\.0-95-generic$";
   "^linux-headers-3\.13\.0-87-generic$";
   "^linux-headers-3\.13\.0-95-generic$";
   "^linux-image-extra-3\.13\.0-87-generic$";
   "^linux-image-extra-3\.13\.0-95-generic$";
   "^linux-signed-image-3\.13\.0-87-generic$";
   "^linux-signed-image-3\.13\.0-95-generic$";
   "^kfreebsd-image-3\.13\.0-87-generic$";
   "^kfreebsd-image-3\.13\.0-95-generic$";
   "^kfreebsd-headers-3\.13\.0-87-generic$";
   "^kfreebsd-headers-3\.13\.0-95-generic$";
   "^gnumach-image-3\.13\.0-87-generic$";
   "^gnumach-image-3\.13\.0-95-generic$";
   "^.*-modules-3\.13\.0-87-generic$";
   "^.*-modules-3\.13\.0-95-generic$";
   "^.*-kernel-3\.13\.0-87-generic$";
   "^.*-kernel-3\.13\.0-95-generic$";
   "^linux-backports-modules-.*-3\.13\.0-87-generic$";
   "^linux-backports-modules-.*-3\.13\.0-95-generic$";
   "^linux-tools-3\.13\.0-87-generic$";
   "^linux-tools-3\.13\.0-95-generic$";
};
wfischer@ubuntu-14-04:~$ 

Sofern der aktuell verwendete Kernel erhalten bleibt (dies müsste immer der Fall sein), entfernen Sie die älteren Kernel Pakete mit folgendem Kommando:

sudo apt-get autoremove --purge

Einzelnachweise


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Firmware Warn GHES Failed to read error status block beheben
Installation des Synology Assistant unter Ubuntu
Treiberprobleme der Grafikausgabe von neueren Linux Kerneln beim LES beheben