Inhaltsverzeichnis
Verwendung des dmesg-Befehls " >Verwendung des dmesg-Befehls
$ dmesg > dmesg_messages" >$ dmesg > dmesg_messages
Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Wissen Sie wirklich, wie man Fehler im Linux-Kernel debuggt? Nach der Lektüre dieses Artikels werden Sie aufgeklärt!

Wissen Sie wirklich, wie man Fehler im Linux-Kernel debuggt? Nach der Lektüre dieses Artikels werden Sie aufgeklärt!

Aug 03, 2023 pm 04:50 PM
linux linux内核


Der Linux-Kernel ist der Kern des Betriebssystems und steuert den Zugriff auf Systemressourcen (wie CPU, E/A-Geräte, physischer Speicher und Dateisysteme). Während des Bootvorgangs und im laufenden Systembetrieb schreibt der Kernel verschiedene Meldungen in den Kernel-Ringpuffer. Diese Meldungen enthalten verschiedene Informationen zum Systembetrieb.

Der Kernel-Ringpuffer ist ein Teil des physischen Speichers, der zum Speichern der Protokollmeldungen des Kernels verwendet wird. Es hat eine feste Größe, was bedeutet, dass ältere Protokolldatensätze überschrieben werden, sobald der Puffer voll ist. Das Befehlszeilendienstprogramm

dmesg wird zum Drucken und Steuern des Kernel-Ringpuffers unter Linux und anderen Unix-ähnlichen Betriebssystemen verwendet. Nützlich zum Überprüfen von Kernel-Boot-Meldungen und zum Debuggen von Hardwareproblemen.

In diesem Tutorial behandeln wir die Grundlagen des Befehls dmesg.

Verwendung des dmesg-Befehls

Die Syntax des dmesg-Befehls lautet wie folgt:

dmesg [OPTIONS]
在不带任何选项的情况下调用时,dmesg将所有消息从内核环形缓冲区写入标准输出:
Nach dem Login kopieren

$ dmesg

Standardmäßig können alle Benutzer den dmesg-Befehl ausführen. Auf einigen Systemen ist der Zugriff auf dmesg jedoch möglicherweise auf Nicht-Root-Benutzer beschränkt. In diesem Fall erhalten Sie beim Aufruf von dmesg eine Fehlermeldung wie diese:

dmesg: Readkernel-Puffer fehlgeschlagen: Vorgang nicht zulässig

Kernel-Parameter kernel.dmesg_restrictGibt an, ob nicht privilegierte Benutzer dmesg verwenden können, um Nachrichten aus dem Kernel-Protokollpuffer anzuzeigen. Um die Beschränkung aufzuheben, setzen Sie sie auf Null:

$ sudo sysctl -w kernel.dmesg_restrict=0< / code><code style="margin: 3px;padding: 3px;font-size: 14px;border-radius: 4px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(155, 110, 35);background-color: rgb(255, 245, 227);">$ sudo sysctl -w kernel.dmesg_restrict=0

通常,输出包含很多信息行,因此只能看到输出的最后一部分。要一次查看一页,请将输出通过管道传送到分页实用程序,例如less或more:

$ dmesg --color=always | less

其中的--color=always参数用于保留彩色输出。

如果要过滤缓冲区消息,可能使用grep。例如,要仅查看与 USB 相关的消息,请键入:

$ dmesg | grep -i usb

Normalerweise enthält die Ausgabe viele Informationszeilen, sodass nur der letzte Teil der Ausgabe sichtbar ist. Um jeweils eine Seite anzuzeigen, leiten Sie die Ausgabe an ein Paginierungsdienstprogramm wie less oder more weiter: 🎜🎜$ dmesg | grep -i usb< / Code>🎜<p data-tool="mdnice编辑器" style="margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);">dmesg 从/proc/kmsg虚拟文件中读取内核生成的消息。该文件提供了到内核环形缓冲区的接口,并且只能由一个进程打开。如果系统上正在运行syslog进程,并且你尝试使用cat或less命令读取文件,则命令将挂起。</p><p data-tool="mdnice编辑器" style="margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);">syslog守护程序将内核消息转储到/var/log/dmesg,因此你也可以使用该日志文件:</p><p data-tool="mdnice编辑器" style="margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);"><code style="margin: 3px;padding: 3px;font-size: 14px;border-radius: 4px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(155, 110, 35);background-color: rgb(255, 245, 227);">$ cat /var/log/dmesg

格式化 dmesg 输出。

dmesg命令提供了许多选项,可帮助你格式化和过滤输出。

dmesg中最常用的选项之一是-H(--human),它将输出更容易读的结果。

$ dmesg -H

要打印人类可读的时间戳,请使用-T(--ctime选项):

$ dmesg -T
[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
Nach dem Login kopieren

时间戳格式也可以使用--time-format选项设置,可以是ctime,reltime,delta,notime或iso。例如:要使用增量格式,你可以输入:

$ dmesg --time-format=delta$ dmesg --time-format=delta

你也可以组合两个或多个选项:

$ dmesg -H -T

要实时观看dmesg命令的输出,请使用-w(--follow)选项:

$ dmesg --follow

Sie können auch zwei oder mehr Optionen kombinieren :

$ dmesg -H -T

Um die Ausgabe des dmesg-Befehls anzusehen Echtzeit, bitte verwenden Sie die Option -w (--follow): 🎜🎜$ dmesg --follow Code>🎜 🎜Dmesg-Ausgabe filtern. 🎜🎜Sie können die DMESG-Ausgabe auf bestimmte Einrichtungen und Ebenen beschränken. dmesg unterstützt die folgenden Typen: 🎜? <ul class="list-paddingleft-2" data-tool="mdnice编辑器" style='margin-top: 8px;margin-bottom: 8px;padding-left: 25px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;'>sys log-intern syslogd-Meldungen <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li>lpr – Zeilendrucker-Subsystem <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li>news – Netzwerknachrichten-Subsystem <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li> -f (--facility<li>) Mit der Option -f (--facility<section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">) können Sie die Ausgabe auf ein bestimmtes Gerät beschränken. Diese Option akzeptiert ein oder mehrere durch Kommas getrennte Funktionen. </section> </li> <li> <section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section> Um beispielsweise nur Kernel- und System-Daemon-Nachrichten anzuzeigen, können Sie Folgendes verwenden: </li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li> Jede Protokollnachricht ist mit einer Protokollebene verknüpft, die die Wichtigkeit der Nachricht anzeigt. dmesg unterstützt die folgenden Protokollebenen: <li> <ul class="list-paddingleft-2" data-tool="mdnice编辑器" style='margin-top: 8px;margin-bottom: 8px;padding-left: 25px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;'> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">emerg – Das System ist nicht verfügbar </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">alert – Es muss sofort gehandelt werden </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">crit – Notfallsituation </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">err – Fehlerzustand </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">warn – Warnzustand. </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">kein Eis - normale, aber wichtige Bedingungen </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">Info - Information </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">Debug - Debug-Level-Meldung </section></li> </ul> <p data-tool="mdnice编辑器" style='margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);'><code style="margin: 3px;padding: 3px;font-size: 14px;border-radius: 4px; Schriftfamilie: „Operator Mono“, Consolas, Monaco, Menlo, Monospace;Wortumbruch: Break-All;Farbe: RGB(155, 110, 35);Hintergrundfarbe: RGB(255, 245, 227);“ > Mit der Option -l (--level <list>) können Sie die Ausgabe auf eine definierte Ebene beschränken. Die Option akzeptiert eine oder mehrere durch Kommas getrennte Ebenen. Der folgende Befehl zeigt nur Fehler- und kritische Meldungen an: $ dmesg -l err,crit

清除环形缓冲区

-C(--clear)选项可让您清除环形缓冲区:

$ sudo dmesg -C

$ dmesg -l err,crit

Ringpuffer löschen 🎜🎜-C (--clear) Option ermöglicht das Löschen des Ringpuffers: 🎜🎜 $ sudo dmesg -C🎜🎜Nur Root oder ein Benutzer mit Sudo-Berechtigungen können den Puffer löschen. 🎜

Um den Pufferinhalt vor dem Löschen auszudrucken, verwenden Sie die Option -c (--read-clear):

$ sudo dmesg -c

如果要在清除文件之前将当前dmesg日志保存到文件中,你可以将输出重定向到文件:

$ dmesg > dmesg_messages

Wenn Sie das aktuelle dmesg-Protokoll vor dem Löschen in einer Datei speichern möchten, können Sie die Ausgabe in die Datei umleiten:

$ dmesg > dmesg_messages

Fazit

Mit dem Befehl dmesg können Sie den Kernel-Ringpuffer anzeigen und steuern. Dies ist hilfreich bei der Fehlerbehebung bei Kernel- oder Hardwareproblemen.
🎜Geben Sie man dmesg in das Terminal ein und Sie erhalten Informationen zu allen verfügbaren dmesg-Optionen. 🎜🎜

Das obige ist der detaillierte Inhalt vonWissen Sie wirklich, wie man Fehler im Linux-Kernel debuggt? Nach der Lektüre dieses Artikels werden Sie aufgeklärt!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Unterschied zwischen CentOS und Ubuntu Unterschied zwischen CentOS und Ubuntu Apr 14, 2025 pm 09:09 PM

Die wichtigsten Unterschiede zwischen CentOS und Ubuntu sind: Ursprung (CentOS stammt von Red Hat, für Unternehmen; Ubuntu stammt aus Debian, für Einzelpersonen), Packungsmanagement (CentOS verwendet yum, konzentriert sich auf Stabilität; Ubuntu verwendet apt, für hohe Aktualisierungsfrequenz), Support Cycle (Centos) (CENTOS bieten 10 Jahre. Tutorials und Dokumente), Verwendungen (CentOS ist auf Server voreingenommen, Ubuntu ist für Server und Desktops geeignet). Weitere Unterschiede sind die Einfachheit der Installation (CentOS ist dünn)

CentOS stoppt die Wartung 2024 CentOS stoppt die Wartung 2024 Apr 14, 2025 pm 08:39 PM

CentOS wird 2024 geschlossen, da seine stromaufwärts gelegene Verteilung RHEL 8 geschlossen wurde. Diese Abschaltung wirkt sich auf das CentOS 8 -System aus und verhindert, dass es weiterhin Aktualisierungen erhalten. Benutzer sollten eine Migration planen, und empfohlene Optionen umfassen CentOS Stream, Almalinux und Rocky Linux, um das System sicher und stabil zu halten.

So installieren Sie CentOs So installieren Sie CentOs Apr 14, 2025 pm 09:03 PM

CentOS -Installationsschritte: Laden Sie das ISO -Bild herunter und verbrennen Sie bootfähige Medien. Starten und wählen Sie die Installationsquelle; Wählen Sie das Layout der Sprache und Tastatur aus. Konfigurieren Sie das Netzwerk; Partition die Festplatte; Setzen Sie die Systemuhr; Erstellen Sie den Root -Benutzer; Wählen Sie das Softwarepaket aus; Starten Sie die Installation; Starten Sie nach Abschluss der Installation von der Festplatte neu und starten Sie von der Festplatte.

Was sind die Backup -Methoden für Gitlab auf CentOS? Was sind die Backup -Methoden für Gitlab auf CentOS? Apr 14, 2025 pm 05:33 PM

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Wie man in CentOS fester Festplatten montiert Wie man in CentOS fester Festplatten montiert Apr 14, 2025 pm 08:15 PM

CentOS -Festplattenhalterung ist in die folgenden Schritte unterteilt: Bestimmen Sie den Namen der Festplattengeräte (/dev/sdx); Erstellen Sie einen Mountspunkt (es wird empfohlen, /mnt /newDisk zu verwenden). Führen Sie den Befehl montage (mont /dev /sdx1 /mnt /newdisk) aus; Bearbeiten Sie die Datei /etc /fstab, um eine permanente Konfiguration des Montings hinzuzufügen. Verwenden Sie den Befehl uMount, um das Gerät zu deinstallieren, um sicherzustellen, dass kein Prozess das Gerät verwendet.

Was zu tun ist, nachdem CentOS die Wartung gestoppt hat Was zu tun ist, nachdem CentOS die Wartung gestoppt hat Apr 14, 2025 pm 08:48 PM

Nachdem CentOS gestoppt wurde, können Benutzer die folgenden Maßnahmen ergreifen, um sich damit zu befassen: Wählen Sie eine kompatible Verteilung aus: wie Almalinux, Rocky Linux und CentOS Stream. Migrieren Sie auf kommerzielle Verteilungen: wie Red Hat Enterprise Linux, Oracle Linux. Upgrade auf CentOS 9 Stream: Rolling Distribution und bietet die neueste Technologie. Wählen Sie andere Linux -Verteilungen aus: wie Ubuntu, Debian. Bewerten Sie andere Optionen wie Container, virtuelle Maschinen oder Cloud -Plattformen.

See all articles