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(不建議在安全環境)。