Wenn es nicht möglich ist, Ihren Server zu migrieren, obwohl Sie den neuesten Kernel installiert haben, ist er möglicherweise beschädigt. Dies kann z. B. auftreten, wenn die Boot-Partition auf Ihrem Server vor der Migration weniger als 100 MB freien Speicherplatz hatte. Des Weiteren kann es eine Vielzahl von weiteren Gründen geben.

Wenn der Linux-Kernel beschädigt ist, kann dies verschiedene Symptome haben, die darauf hindeuten, dass mit dem System etwas nicht stimmt. Mithilfe der folgenden Anzeichen und Methoden können Sie erkennen, ob der Kernel möglicherweise beschädigt ist:

Boot-Probleme: Das offensichtlichste Anzeichen für einen beschädigten Kernel sind Startprobleme. Das System könnte in einer Boot-Schleife stecken bleiben, mit Fehlermeldungen abstürzen oder gar nicht erst booten.

Systemabstürze und Fehlermeldungen: Wenn Ihr Linux-System häufig abstürzt oder unerwartete Kernel-Panics aufweist, kann das ein Zeichen für einen beschädigten Kernel sein. Kernel-Panics werden oft von einer Fehlermeldung auf einem blauen oder schwarzen Bildschirm begleitet.

Dmesg und Systemlogs: Überprüfen Sie die Logs, insbesondere die Ausgaben von dmesg direkt nach dem Booten. dmesg liefert die Kernel-bezogenen Nachrichten, die hilfreich sein können, spezifische Fehler oder Probleme zu identifizieren.

root@localhost:~# dmesg | less


Sie können auch journalctl verwenden, um Systemlogs zu prüfen:

root@localhost:~# journalctl -xb


Fehlerhafte Module: Ein weiteres mögliches Symptom eines beschädigten Kerns sind Probleme mit Kernel-Modulen. Überprüfen Sie, ob alle Module geladen werden können oder ob Fehlermeldungen angezeigt werden:

root@localhost:~# lsmod
root@localhost:~# modprobe yourmodulename


Unstimmigkeiten in der Funktionalität: Wenn bestimmte systemnahe Funktionen (wie Netzwerkoperationen, Dateisystemzugriffe, Hardwareinteraktionen usw.) unzuverlässig werden oder unerklärbare Fehler auftreten, könnte dies ebenfalls auf Probleme mit dem Kernel hindeuten.

Booten von einem älteren Kernel und Reparieren der neusten Kernelversion

Wenn auf Ihrem Server ein älterer Kernel installiert ist, können Sie Ihren Server mit einem dieser Kernel booten, um ihn online zu bringen und eine Fehlersuche durchzuführen.

  • Melden Sie sich in Ihrem IONOS Konto an.
  • Klicken Sie in der Titelleiste auf Menü > Server & Cloud. Wenn Sie mehrere Serververträge haben, wählen Sie den gewünschten Vertrag aus.
  • Klicken Sie auf Aktionen > Remote-Konsole öffnen.

    Die Remote-Konsole wird in einer neuen Registerkarte geöffnet. 

  • Wechseln Sie umgehend zum Cloud Panel und klicken Sie auf Aktionen > Neu starten.

    Im Rahmen des Neustarts wird die Verbindung zur Konsole unterbrochen.
  • Wechseln Sie zur Remotekonsole.
  • Klicken Sie in der linken oberen Ecke auf Options > Reconnect, bis Ihnen die folgende Meldung angezeigt wird: 
  • Drücken Sie sofort die ESC-Taste und halten Sie diese gedrückt, bis das folgende Fenster erscheint. 
  • Wählen Sie Advanced Options for Ubuntu und drücken Sie die Eingabetaste.
  • Es wird eine Liste der verfügbaren Kernel angezeigt, wobei der neueste Kernel ganz oben steht. Wählen Sie den zweitneuesten Kernel und drücken Sie Enter. Wenn dieser Kernel funktioniert, bootet Ihr Server nun ganz normal und bringt Sie zur Anmeldeaufforderung.
Hinweis

Wählen Sie keinen Recovery Mode Kernel aus!

  • Geben Sie Ihre Anmeldedaten ein.
  • Um zu überprüfen, ob Sie den Server von einem älteren Kernel gebootet haben, geben Sie den folgenden Befehl ein: 

    [root@localhost ~]# uname -r

Daten Ihres Servers sichern

Sichern Sie Ihre Serverdaten, bevor Sie den Kernel reparieren. Sie können entweder das kostenpflichtige Cloud-Backup verwenden oder die Daten mit Filezilla lokal auf Ihrem Computer speichern.

Weitere Informationen über Cloud Backup finden Sie im folgenden Artikel:

Cloud-Backup: Erste Schritte

Kernel reparieren

  • Prüfen Sie mit dem folgenden Befehl, welche Kernel derzeit auf Ihrem Server installiert sind:

    [root@localhost ~]# dpkg --list | grep linux-image

    Beispiel:

    root@server:~# dpkg --list | grep linux-image
    rc linux-image-5.15.0-105-generic 5.15.0-105.115 amd64 Signiertes Kernel-Image generic
    ii linux-image-5.15.0-106-generic 5.15.0-106.116 amd64 Signiertes Kernel-Image generic
    iF linux-image-5.15.0-107-generic 5.15.0-107.117 amd64 Signiertes Kernel-Image generic
    ii linux-image-5.15.0-97-generic 5.15.0-97.107 amd64 Signiertes Kernel-Image generic
    rc linux-image-unsigned-5.15.0-107-generic 5.15.0-107.117 amd64 Linux-Kernel-Image für Version 5.15.0 auf 64 Bit x86 SMP
    root@server:~#

    In diesem Beispiel ist linux-image-5.15.0-107-generic der neueste installierte Kernel. Der Kernel linux-image-5.15.0-97-generic ist der älteste. Der Status eines Kernels wird durch die Paketstatuscodes angegeben:

Paket Status Code Bedeutung
ii Richtig installiert und konfiguriert
iU Installiert, aber nicht konfiguriert
iF Installiert, aber Konfiguration fehlgeschlagen
iW Installiert, aber möglicherweise auf etwas anderes wartend (selten)
rc Entfernt, aber Konfigurationsdateien noch vorhanden
Hinweis

Für entfernte Kernel, bei denen noch Konfigurationsdateien vorhanden sind (rc), können die Konfigurationsdateien mit dem folgenden Befehl bereinigt werden:

apt-get purge $(dpkg -l | grep '^rc' | awk '{print $2}')

  • In diesem Beispiel hat der Kernel linux-image-5.15.0-107 den Statuscode IF. Dieser Statuscode bedeutet, dass die Konfiguration fehlgeschlagen ist.
  • Um dies zu beheben, installieren Sie den entsprechenden Kernel neu. Ersetzen Sie dazu den Platzhalter im folgenden Befehl und geben Sie ihn anschließend ein.

    [root@localhost ~]# apt-get install --reinstall IMAGE NAME

    Beispiel:

    [root@localhost ~]# apt-get install --reinstall linux-image-5.15.0-107-generic

  • Um zu überprüfen, ob die Neuinstallation erfolgreich war, geben Sie den folgenden Befehl ein:

    [root@localhost ~]# dpkg --list | grep linux-image
    rc linux-image-5.15.0-105-generic 5.15.0-105.115 amd64 Signiertes Kernel-Image generic
    ii linux-image-5.15.0-106-generic 5.15.0-106.116 amd64 Signiertes Kernel-Image generic
    ii linux-image-5.15.0-107-generic 5.15.0-107.117 amd64 Signiertes Kernel-Image generic
    ii linux-image-5.15.0-97-generic 5.15.0-97.107 amd64 Signiertes Kernel-Image generic
    rc linux-image-unsigned-5.15.0-107-generic 5.15.0-107.117 amd64 Linux-Kernel-Image für Version 5.15.0 auf 64 Bit x86 SMP
    root@server:/#

    Der Kernel Linux-image-5.15.0-107-generic zeigt jetzt den Paketstatuscode ii an, was bedeutet, dass er installiert und richtig konfiguriert ist. Um den Vorgang abzuschließen, booten Sie den Server neu. Der neueste Kernel wird automatisch geladen.

  • Um den Vorgang abzuschließen, starten Sie den Server neu.

    [root@localhost ~]# reboot

Kernel reparieren, wenn auf der Boot-Partition zu wenig Speicherplatz vorhanden ist

Wenn auf der Boot-Partition nicht genügend Speicherplatz vorhanden ist, schlägt die Neuinstallation des Kernels mit der oben beschriebenen Methode fehl.  In diesem Fall wird die folgende Information angezeigt:

[root@localhost ~]# apt-get install --reinstall linux-image-5.15.0-107-generic
Paketlisten lesen... Erledigt
Abhängigkeitsstruktur aufbauen... Erledigt
Lesen von Statusinformationen... Erledigt
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
 amd64-microcode libdbus-glib-1-2 libevdev2 libimobiledevice6 libplist3 libupower-glib3 libusbmuxd6 linux-headers-generic thermald upower usbmuxd
Verwenden Sie "apt autoremove", um sie zu entfernen.
0 aufgerüstet, 0 neu installiert, 1 neu installiert, 0 zu entfernen und 2 nicht aufgerüstet.
Sie müssen 0 B/11,5 MB an Archiven erhalten.
Nach diesem Vorgang wird 0 B zusätzlicher Speicherplatz verwendet.
(Lesen der Datenbank ... 203704 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereiten des Entpackens von .../linux-image-5.15.0-107-generic_5.15.0-107.117_amd64.deb ...
Entpacken von linux-image-5.15.0-107-generic (5.15.0-107.117) über (5.15.0-107.117) ...
dpkg: Fehler bei der Verarbeitung des Archivs /var/cache/apt/archives/linux-image-5.15.0-107-generic_5.15.0-107.117_amd64.deb (--unpack):
kann extrahierte Daten für './boot/vmlinuz-5.15.0-107-generic' nicht nach '/boot/vmlinuz-5.15.0-107-generic.dpkg-new' kopieren: Schreibvorgang fehlgeschlagen (Kein Platz mehr auf dem Gerät)
Es wird kein Bericht geschrieben, da die Fehlermeldung auf einen vollen Datenträger hinweist
                                                                             dpkg-deb: Fehler: Paste-Unterprozess wurde durch Signal beendet (Broken pipe)
Bei der Verarbeitung sind Fehler aufgetreten:
/var/cache/apt/archives/linux-image-5.15.0-107-generic_5.15.0-107.117_amd64.deb
needrestart wird übersprungen, da dpkg fehlgeschlagen ist
E: Der Unterprozess /usr/bin/dpkg gab einen Fehlercode zurück (1)
root@server:/#


Um dieses Problem zu lösen, ist es erforderlich, Speicherplatz freizugeben. Gehen Sie hierbei wie folgt vor:

  • Geben Sie den folgenden Befehl ein, um Informationen über den verwendeten Speicherplatz anzuzeigen.

    [root@localhost ~]# df -h

  • Geben Sie anschließend Speicherplatz frei. Eine Anleitung zum Freigeben von Speicherplatz finden Sie im folgenden Artikel: 

    Speicherplatz auf einem Virtual Server Cloud freigeben

Manuelle Installation des Kernels, wenn die Neuinstallation fehlschlägt

Wenn die Neuinstallation des Kernels aus einem anderen Grund als unzureichendem Speicherplatz auf der Boot-Partition fehlschlägt, können Sie versuchen, den Kernel manuell zu entfernen und neu zu installieren.

Warnung

Entfernen Sie niemals den Kernel, den Sie gerade verwenden, da dies zu schwerwiegenden Fehlern auf Ihrem Server führen kann. Verwenden Sie immer den Befehl uname -r, um zu überprüfen, welchen Kernel Sie verwenden.

Um den Kernel zu entfernen und anschließend neu zu installieren, gehen Sie wie folgt vor:

  • Prüfen Sie mit dem folgenden Befehl, welche Kernel derzeit auf Ihrem Server installiert sind:

    [root@localhost ~]# dpkg --list | grep linux-image

  • Um zu überprüfen, welchen Kernel Sie verwenden, geben Sie den folgenden Befehl ein:

    [root@localhost ~]# uname -r

  • Um das Kernel-Paket linux-image-5.15.0-107-generic - zu entfernen, geben Sie den folgenden Befehl ein:

    [root@localhost ~]# apt-get purge linux-image-5.15.0-107-generic

  • Um zu überprüfen, ob das Kernel-Paket entfernt wurde, geben Sie den folgenden Befehl ein:

    [root@localhost ~]# dpkg --list | grep linux-image

  • Um den Kernel neu zu installieren, ersetzen Sie die Platzhalter im folgenden Befehl und geben ihn ein:

    [root@localhost ~]# apt install --install-recommends kernel-VERSION

    Beispiel:

    [root@localhost ~]# apt install --install-recommends linux-image-5.15.0-107-generic

  • Überprüfen Sie, ob das Kernel-Paket korrekt installiert ist.

    [root@localhost ~]# dpkg --list | grep linux-image

  • Um den Server neu zu starten, geben Sie den folgenden Befehl ein:

    [root@localhost ~]# reboot