dmesg — 顯示核心環型緩衝區的訊息

顯示核心訊息,用於診斷硬體問題與驅動程式錯誤。

語法

dmesg [選項]

常用選項

選項 說明 範例
-T, --ctime 以人類可讀時間格式顯示時間戳記(強烈建議加上) dmesg -T
-f 設施 依設施過濾(kern/user/daemon/syslog 等) dmesg -f kern
-l 等級 依日誌等級過濾(emerg/alert/crit/err/warn/notice/info/debug) dmesg -l err
-H, --human 以人類可讀格式輸出(彩色 + 分頁) dmesg -H
-w, --follow 持續輸出新的核心訊息 dmesg -w
-c, --read-clear 顯示後清空緩衝區 sudo dmesg -c

使用範例

範例 1:查看最近的核心訊息

加 -T 顯示人類可讀的時間,搭配 tail 看最新的訊息。

$ dmesg -T | tail -30
[Tue May 20 10:00:01 2026] usb 1-2: new USB device found
[Tue May 20 10:00:01 2026] usb 1-2: Product: USB Storage
範例 2:查看錯誤訊息

只顯示錯誤等級的訊息,快速找出硬體或驅動程式問題。

$ dmesg -T -l err,crit,alert,emerg
[Tue May 20 09:00:05 2026] EXT4-fs error (device sda1): ext4_find_entry:1455: inode #4: comm kworker: reading directory lblock 0
範例 3:查看開機硬體偵測記錄

搭配 grep 找出特定硬體的識別記錄(USB、網卡、磁碟等)。

$ dmesg -T | grep -i "eth\|net\|enp"
[Tue May 20 09:00:02 2026] e1000e: Intel(R) PRO/1000 Network Driver
[Tue May 20 09:00:02 2026] enp1s0: renamed from eth0
範例 4:即時監控核心訊息

使用 -w 持續輸出新的核心訊息,適合插拔 USB 裝置時監控。

$ dmesg -Tw
(持續顯示新的核心訊息)

常見錯誤與排錯

dmesg: read kernel buffer failed: Operation not permitted
原因
部分 Linux 系統(Ubuntu 22.04+)限制一般使用者讀取 dmesg。
解法
使用 sudo dmesg,或設定 kernel.dmesg_restrict=0(不建議在安全環境)。

延伸閱讀