Alte Kernel in Ubuntu entfernen
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:
- Ubuntu vor Version Ubuntu 15.10 (betroffen sind also u.a. Ubuntu 12.04 LTS, Ubuntu 14.04 LTS)
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
- ↑ Why doesn't apt-get autoremove remove my old kernels? (askubuntu.com)
- ↑ Kernel updates are being marked as manually installed (bugs.launchpad.net)
- ↑ New packages (e.g. kernels) not marked for autoremove iff update-manager set to "display" rather than "install automatically" (bugs.launchpad.net)
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.
|