Ein USB-Stick verschwindet, die Netzwerkkarte trennt die Verbindung, eine SSD funktioniert nicht richtig oder der Rechner zeigt direkt nach dem Start eine Fehlermeldung an? Bevor ich willkürlich die Konfiguration ändere, überprüfe ich fast immer die Kernel-Meldungen.
Unter Linux, dmesg Es ermöglicht Ihnen, diese Meldungen schnell zu lesen. Es ist kein Wundermittel, liefert aber oft den ersten nützlichen Hinweis: einen E/A-Fehler, ein zurückgesetztes USB-Gerät, fehlende Firmware, einen fehlerhaften Treiber oder eine instabile Netzwerkverbindung.
In dieser Anleitung zeige ich Ihnen, wie Sie dmesg Genau genommen kreuzt man es mit journalctl -kFiltern Sie die relevanten Zeilen heraus und vermeiden Sie den Irrglauben, eine Systemoption zu ändern, bevor Sie die Nachricht verstanden haben.

Was dmesg tatsächlich anzeigt
dmesg Zeigt den Meldungspuffer des Linux-Kernels an. Vereinfacht ausgedrückt finden Sie dort Ereignisse auf niedriger Ebene: Hardwareerkennung, Treiber, Festplattenfehler, USB, Netzwerk, ACPI, Firmware, Speicher, Geräteeinbindung usw.
Auf einem modernen Rechner sind einige dieser Meldungen auch im systemd-Protokoll sichtbar. Deshalb rate ich Ihnen, beide Befehle griffbereit zu haben: dmesg zum schnellen Lesen, journalctl -k für eine übersichtlichere Darstellung im Systemprotokoll.
dmesg
Bei manchen Distributionen sind zum Lesen Administratorrechte erforderlich. Falls ein Berechtigungsfehler auftritt, versuchen Sie es erneut mit Sudo.
sudo dmesg
Die Handbuchseite von dmesg Es beschreibt alle Optionen detailliert. Für routinemäßige Diagnosen reichen schon wenige Befehle völlig aus.
Lies die letzten Zeilen, ohne dabei zu ertrinken.
Als Erstes sollte man nicht 800 Zeilen auf einmal anzeigen. Wenn gerade ein Problem aufgetreten ist, sollte man mit dem Ende des Kernel-Logs beginnen.
sudo dmesg -T | tail -n 80
Die Option -T Dadurch werden Datumsangaben besser lesbar. Beachten Sie, dass dieses Format zwar für schnelles Lesen praktisch ist, aber eine gründliche Analyse von Zeitungen nicht ersetzt, wenn Sie sehr spezifische Ereignisse vergleichen. Dafür sollten Sie Folgendes beachten: journalctl bleibt komfortabler..
Sie können auch nur Warnungen und Fehler anzeigen lassen:
sudo dmesg -T --level=err,warn
Wenn der Befehl keine Ausgabe liefert, ist das nicht unbedingt ein schlechtes Zeichen. Es bedeutet lediglich, dass der Kernel in diesem Puffer keine aktuellen Fehler oder Warnungen protokolliert hat.
Filtern eines USB-, Festplatten- oder Netzwerkproblems
Die eigentliche Zeitersparnis ergibt sich durch Filtern. Wenn Sie wissen möchten, warum ein USB-Laufwerk nicht erkannt wird, eine Festplatte nicht richtig funktioniert oder eine Netzwerkkarte sich ständig zurücksetzt, lesen Sie nicht alles. Suchen Sie nach den Begriffen, die sich auf die jeweilige Hardware beziehen.
sudo dmesg -T | grep -iE 'usb|sda|sdb|nvme|ata|error|fail|reset'
Zur Information: Die Zeilen, auf die man achten sollte, sind oft ziemlich selbsterklärend: E/A-Fehler, zurücksetzen, fehlgeschlagener Befehl, blk_update_request, Lesefehler, SchreibfehlerWenn Sie diese Art von Meldung wiederholt sehen, schreiben Sie sie nicht einfach neu. /etc/fstabÜberprüfen Sie zuerst das Kabel, das USB-Gehäuse, das Netzteil und dann den Zustand der Festplatte.
Bei einem USB-Gerät vergleichen Sie die Befehle mit den bereits im Leitfaden aufgeführten Befehlen. USB-Anschlüsse unter Linux oder derjenige auf der Montage eines USB-Sticks. dmesg sagt Ihnen, was der Kern beobachtet, aber lsusb, lsblk Und findmnt hilft zu verstehen, was tatsächlich erkannt und montiert wird.
lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTS
findmnt
lsusb
Bei einem Netzwerkproblem suchen Sie nach dem Schnittstellennamen oder Begriffen wie Link, umbenannt, Firmware, Time-out, runter, hochWenn es hauptsächlich um das Abhören von TCP-Ports geht, wechseln Sie zu ss oder netstat, Weil dmesg Ersetzt keine Netzwerkinventur.
Folgen Sie den Anweisungen, während Sie die Geräte anschließen.
Wenn ein Gerät zeitweise die Verbindung verliert, ist es am einfachsten, die Live-Meldungen zu überwachen. Öffnen Sie ein Terminal, führen Sie den Befehl aus und schließen Sie dann die Festplatte, das USB-Laufwerk oder den Netzwerkadapter an.
sudo dmesg -wH
-w Folgen Sie neuen Nachrichten. -H Dadurch wird die Ausgabe lesbarer. Wenn Sie lieber im systemd-Protokoll bleiben möchten, verwenden Sie:
sudo journalctl -k -f
Die Handbuchseite von Journalctl Dies ist hilfreich, wenn Sie die Suche nach Startvorgang, Priorität oder Einheit verfeinern möchten. Bei einem einfachen Hardwarefehler genügt oft die Live-Überwachung, um zu sehen, ob der Kernel den Sprung und anschließend den Fehler erkennt.
Überprüfen Sie mit journalctl den letzten Startvorgang.
dmesg Das geht schnell, aber ich höre damit nicht auf, wenn das Problem einen Server betrifft oder nach einem Neustart erneut auftritt. Das systemd-Log ermöglicht es, die Kernelmeldungen des aktuellen Systemstarts mit eigenen Filtern erneut zu lesen.
sudo journalctl -k -b --no-pager
sudo journalctl -k -b -p warning..alert --no-pager
Der erste Befehl zeigt die Kernelmeldungen des aktuellen Bootvorgangs an. Der zweite Befehl speichert nur Warnungen, Fehler und Hinweise. Dies ist hilfreich nach einem Neustart, wenn ein Mountvorgang fehlgeschlagen ist, eine Netzwerkschnittstelle nicht korrekt eingebunden wurde oder ein Treiber beim Booten ein Problem meldet.
Wenn Sie gerade geändert haben /etc/fstabStarten Sie nicht einfach neu, nur um zu sehen, ob es funktioniert. Testen Sie die Assembly zuerst und prüfen Sie sie auf Fehler. Die Anleitung dazu finden Sie hier. fstab unter Linux Dieser Punkt muss genauer erläutert werden, denn eine fehlerhafte Leitung kann den Startvorgang schneller blockieren, als man denkt.
sudo mount -a
findmnt
sudo journalctl -k -b -p warning..alert --no-pager
Zu erkennen, wann die Meldung auf ein tatsächliches Hardwareproblem hinweist.
Eine isolierte Leitung dmesg Das reicht nicht immer für eine endgültige Schlussfolgerung. Ein USB-Gerät kann sich einmalig zurücksetzen, ohne dass dies schwerwiegend ist. Ein Fehler, der bei jedem Kopiervorgang wiederkehrt, ein Laufwerk, das sich ständig trennt und wieder verbindet, oder wiederholte E/A-Fehler sollten jedoch ernst genommen werden.
In diesem Fall führe ich drei Prüfungen durch, bevor ich die Konfiguration ändere:
- Wechseln Sie das Kabel, den USB-Anschluss oder das Netzteil, falls es sich um ein externes Gerät handelt.
- überprüfen Sie, ob die Festplatte korrekt identifiziert wurde mit
lsblkUndblkid; - Prüfen Sie den SMART-Status, wenn es sich um eine Festplatte oder eine SSD handelt.
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS
sudo blkid
sudo smartctl -a /dev/sdX
Ersetzen /dev/sdX Führen Sie den Befehl auf der richtigen Festplatte aus. Kopieren Sie diesen Befehl nicht blindlings auf einen Rechner mit mehreren Festplatten. Wenn Sie sich nicht sicher sind, brechen Sie ab. lsblk Bevor Sie fortfahren, ermitteln Sie bitte das Modell, die Größe und den Montagepunkt.
Notieren Sie sich vor der Korrektur den genauen Fehler.
Die beste Verwendung von dmesgZiel ist es nicht, eine Patentlösung zu finden. Vielmehr geht es darum, einen konkreten Fehler zu erfassen, bevor man Maßnahmen ergreift. Kopieren Sie einige Zeilen um die Fehlermeldung herum und notieren Sie sich die Uhrzeit, das betroffene Gerät und die Aktion, die das Problem auslöst.
sudo dmesg -T | tail -n 120 > core-diagnostic.txt
sudo journalctl -k -b -p warning..alert --no-pager >> core-diagnostic.txt
Erst dann können Sie entscheiden: welches Kabel ausgetauscht, welche Festplatte gesichert, welcher Treiber überprüft, welche fstab-Regel korrigiert, welche Firmware installiert oder welcher Dienst überwacht werden soll. Dieser Schritt mag simpel erscheinen, verhindert aber viele absurde Diagnosen, insbesondere bei sporadischen Fehlern.
Bei der Administration eines Remote-Rechners ist besondere Vorsicht geboten. Ein vom Kernel erkannter Festplatten- oder Netzwerkfehler kann den Zugriff unterbrechen. Halten Sie eine Sitzung offen, gewähren Sie nach Möglichkeit Konsolenzugriff und starten Sie den Rechner erst neu, wenn Sie die Kernel-Meldung verstanden haben.