Linux Kernel aufräumen
Einleitung
Aktuell verwende ich zwei verschiedene Kernel auf meinem Fedora 44 System. Den Standard Kernel, der von Fedora ausgeliefert wird und zusätzlich, weil ich mit dem System auch viel spiele, den an Fedora angepassten CachyOS Kernel (den bekommt man hier: https://github.com/CachyOS/copr-linux-cachyos).
Dadurch wird es auf der /boot Partition manchmal etwas eng (ja, ich weiß ... mach sie doch größer oder sag DNF einfach, es soll nicht so viele Kernel aufbewahren) und man sollte ab und an mal "durch wischen" um die alten Kernel aufzuräumen, damit es keinen Fehler beim nächsten Update gibt.
Kernel Versionen auflisten
Also erstes sollte man mal schauen, welche Kernel Versionen auf dem System aktuell überhaupt installiert sind:
uname -r
rpm -q kernel-core --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -V
# Wenn man wie ich einen CachyOS Kernel im Einsatz hat!
# Mit dem 7.1er Kernel hat der Maintainer den Namen des Kernel an den Standard Kernel angepasst,
# so dass diese Zeile eigentlich obsolet ist, ich lass sie aber mal zur Dokumentation drin.
rpm -q kernel-cachyos-core --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -V
Zusätzlich prüfen, welcher Kernel aktuell verwendet wird:
sudo grubby --default-kernel
Einen bestimmten Kernel definiert entfernen
Als Beispiel entfernen wir hier jetzt den Kernel 7.0.11-cachyos1.fc44.x86_64 den hab ich extra für das Wiki noch drauf gelassen.
Alle zugehörigen Pakete anzeigen lassen (KVER an den entsprechenden Kernel anpassen):
KVER='7.0.11-cachyos1.fc44.x86_64'
#Bei nicht CachyOS Kerneln:
rpm -qa | grep -E "^(kernel|kernel-core|kernel-modules|kernel-modules-core|kernel-modules-extra|kernel-devel|kernel-devel-matched)-${KVER}(\.|$)" | sort
#Bei CachyOS Kerneln:
rpm -qa | grep -E "^(kernel-cachyos|kernel-cachyos-core|kernel-cachyos-modules|kernel-cachyos-modules-core|kernel-cachyos-modules-extra|kernel-cachyos-devel|kernel-cachyos-devel-matched)-${KVER}(\.|$)" | sort
Da sieht nach den erwarteten Paketen aus. Nun kann man diese Pakete aus dem System entfernen:
KVER='7.0.11-cachyos1.fc44.x86_64'
# Für den Standard Kernel
mapfile -t KERNEL_PKGS < <(
rpm -qa | grep -E "^(kernel|kernel-core|kernel-modules|kernel-modules-core|kernel-modules-extra|kernel-devel|kernel-devel-matched)-${KVER}(\.|$)"
)
# Für CachyOS Kernel
mapfile -t KERNEL_PKGS < <(
rpm -qa | grep -E "^(kernel-cachyos|kernel-cachyos-core|kernel-cachyos-modules|kernel-cachyos-modules-core|kernel-cachyos-modules-extra|kernel-cachyos-devel|kernel-cachyos-devel-matched)-${KVER}(\.|$)"
)
printf '%s\n' "${KERNEL_PKGS[@]}"
if (( ${#KERNEL_PKGS[@]} > 0 )); then
sudo dnf5 remove "${KERNEL_PKGS[@]}"
else
echo "Keine Pakete für Kernel ${KVER} gefunden."
fi
Das kann man nun für alle zu entfernenden Kernel wiederholen um damit sauber einzelne Kernel aus dem System zu entfernen.
Vorsorgemaßnahmen
Man kann natürlich auch vorher sicherstellen, dass DNF nicht zu viele Kernel aufbewahrt (in meinem Fall möchte ich aber gerne für Tests auch mal mehr als eine Version zurück, daher war das erst mal keine Option und ich mache das eben "von Hand").
sudo vi /etc/dnf/dnf.conf
[...]
[main]
# Bei einem Limit von 2 werden von allen "Install Only" Paketen, zu denen auch die Kernel gehören, nur zwei Versionen beibehalten.
# Kleiner sollte man nicht gehen, damit man immer einen Rescue Kernel hat, wenn man einem Update etwas nicht funktioniert.
installonly_limit=2
[...]
Das geht auch auf der shell als einmalige Aktion:
sudo dnf5 remove --oldinstallonly --limit=2





No comments to display
No comments to display