Der Linux Kernel ist das Herzstück des Systems. Regelmäßige Updates bringen Sicherheitspatches und neue Hardware-Unterstützung.

Aktuelle Version prüfen

# Kernel-Version
uname -r

# Detaillierte Info
uname -a

# Alle installierten Kernel
dpkg --list | grep linux-image  # Debian/Ubuntu
rpm -qa | grep kernel           # CentOS/RHEL

Kernel aktualisieren

Debian/Ubuntu

# Verfügbare Updates prüfen
apt update
apt list --upgradable | grep linux

# Kernel aktualisieren
apt upgrade linux-image-generic linux-headers-generic

# Oder alle Updates
apt full-upgrade

CentOS/RHEL

# Updates prüfen
dnf check-update kernel

# Kernel aktualisieren
dnf update kernel

# Oder automatisch
dnf update

Nach Update

# Neustart erforderlich
reboot

# Neue Version prüfen
uname -r

Alte Kernel entfernen

Debian/Ubuntu

# Installierte Kernel auflisten
dpkg --list | grep linux-image

# Alte Kernel entfernen
apt autoremove --purge

# Manuell entfernen
apt remove --purge linux-image-5.15.0-50-generic

Automatisches Bereinigen

# /etc/apt/apt.conf.d/50unattended-upgrades

Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

CentOS/RHEL

# Alte Kernel auflisten
rpm -qa | grep kernel | sort

# Automatisch bereinigen (behält 3)
dnf remove $(dnf repoquery --installonly --latest-limit=-3 -q)

# Anzahl beizubehaltender Kernel konfigurieren
# /etc/dnf/dnf.conf
installonly_limit=3

Kernel-Version fixieren

Version halten (Debian/Ubuntu)

# Kernel-Updates verhindern
apt-mark hold linux-image-generic linux-headers-generic

# Status prüfen
apt-mark showhold

# Wieder freigeben
apt-mark unhold linux-image-generic linux-headers-generic

CentOS/RHEL

# Version ausschließen
# /etc/dnf/dnf.conf
exclude=kernel*

# Oder mit versionlock
dnf install python3-dnf-plugin-versionlock
dnf versionlock kernel-*

Bestimmten Kernel installieren

Debian/Ubuntu

# Verfügbare Versionen suchen
apt-cache search linux-image | grep generic

# Bestimmte Version installieren
apt install linux-image-5.15.0-generic linux-headers-5.15.0-generic

Neueren Kernel installieren (HWE)

# Hardware Enablement Stack (Ubuntu LTS)
apt install linux-generic-hwe-22.04

Mainline Kernel (Ubuntu)

# Mainline Kernel installieren
add-apt-repository ppa:cappelikan/ppa
apt update
apt install mainline

# GUI starten
mainline

DKMS-Module

DKMS prüfen

# Installierte DKMS-Module
dkms status

# Bei Kernel-Update automatisch bauen
dkms autoinstall -k $(uname -r)

Probleme beheben

# Modul neu bauen
dkms remove -m nvidia -v 535.86.05 -k $(uname -r)
dkms install -m nvidia -v 535.86.05 -k $(uname -r)

Zum älteren Kernel booten

Temporär (GRUB)

1. Beim Boot: Shift gedrückt halten
2. "Advanced options for Ubuntu" wählen
3. Älteren Kernel auswählen

Permanent

# /etc/default/grub
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-50-generic"

# Aktualisieren
update-grub

Kernel-Parameter

Boot-Parameter

# /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="net.ifnames=0"

update-grub

Laufzeit-Parameter

# Aktuellen Wert lesen
sysctl vm.swappiness

# Temporär ändern
sysctl -w vm.swappiness=10

# Permanent
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

Kernel selbst kompilieren

Quellcode herunterladen

cd /usr/src
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.7.tar.xz
tar -xf linux-6.7.tar.xz
cd linux-6.7

Konfiguration

# Aktuelle Konfiguration kopieren
cp /boot/config-$(uname -r) .config

# Menü-Konfiguration
make menuconfig

# Oder alte Konfig verwenden
make oldconfig

Kompilieren und Installieren

# Kompilieren (kann Stunden dauern)
make -j$(nproc)

# Module installieren
make modules_install

# Kernel installieren
make install

# GRUB aktualisieren
update-grub

Troubleshooting

Kernel Panic

# Zum alten Kernel booten (GRUB-Menü)
# Dann problematischen Kernel entfernen
apt remove linux-image-PROBLEMATIC-VERSION

DKMS-Fehler nach Update

# Alle Module neu bauen
dkms autoinstall

# Fehlende Header installieren
apt install linux-headers-$(uname -r)

Kein Netzwerk nach Update

# Netzwerk-Modul prüfen
lsmod | grep -E "(e1000|igb|ixgbe)"

# Modul laden
modprobe e1000e

Grafik-Probleme

# Ohne GUI booten
# Am GRUB: 'nomodeset' anhängen

# Grafiktreiber neu installieren
apt install --reinstall nvidia-driver-535

Live-Kernel-Patching

Canonical Livepatch (Ubuntu)

# Aktivieren
snap install canonical-livepatch
canonical-livepatch enable TOKEN

# Status
canonical-livepatch status

KernelCare

# Installieren
curl -s https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash
kcarectl --register KEY

# Status
kcarectl --info

Zusammenfassung

| Befehl | Funktion | |--------|----------| | uname -r | Aktuelle Version | | apt upgrade linux-image-generic | Kernel updaten | | apt autoremove --purge | Alte Kernel entfernen | | apt-mark hold | Updates verhindern | | dkms status | DKMS-Module prüfen |

| Datei | Beschreibung | |-------|--------------| | /boot/vmlinuz- | Kernel-Images | | /boot/initrd.img- | Initial RAM Disk | | /boot/config- | Kernel-Konfiguration | | /lib/modules/ | Kernel-Module |

Fazit

Kernel-Updates sind wichtig für Sicherheit und Hardware-Support. Behalten Sie immer mindestens einen funktionierenden Kernel als Fallback. DKMS-Module müssen nach Updates neu gebaut werden. Bei Problemen können Sie im GRUB-Menü zum vorherigen Kernel zurückkehren. Für Produktivsysteme empfiehlt sich Live-Patching, um Neustarts zu vermeiden.