當系統開機的過程中 , kerenel 會被先載入到記憶體 ,並控制著整個系統 . 系統一開起來 , 它會在螢幕顯示一連串的訊息 ,
內容是關於開機過程中kernel 所偵測到的硬體資訊 . 而這些訊息會擺在 kernel ring bufer 裡面 , 所謂的 ring buffer 就是當新的資訊進來 , 就會把就資訊覆蓋掉 , 所以稱 ring buffer . 如果你想要在開機之後讀取這些訊息 , 你可以使用 dmesg 指令 . 例如:
翻頁顯示所有資訊
# dmesg | more
Bluetooth: L2CAP ver 2.8
eth0: no IPv6 routers present
bnx2: eth0 NIC Copper Link is Down
usb 1-5.2: USB disconnect, address 5
bnx2: eth0 NIC Copper Link is Up, 100 Mbps full duplex
....................................
..............................
查詢可用系統記憶體
# dmesg | grep Memory
Memory: 57703772k/60817408k available (2011k kernel code, 1004928k reserved, 915k data, 208k init)
檢視網卡狀態資訊 (UP/DOWN)
# dmesg | grep eth
eth0: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found at mem 96000000, IRQ 169, node addr e4:1f:13:62:ff:58
eth1: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found at mem 98000000, IRQ 114, node addr e4:1f:13:62:ff:5a
eth0: Link up
Linux 可允許你改變內定的 ring buffer 儲存檔案的大小限制 , 只要改變 CONFIG_LOG_BUF_SHIFT 這個參數的值 . 一般 dmesg buffer 會儲存在類似這樣的檔/boot/config-2.6.18-194.el5
, 視你的系統版本而定 .因此你可以用下面一行指令 ,尋找與改變該參數的值 .
# grep CONFIG_LOG_BUF_SHIFT /boot/config-`uname -r`
CONFIG_LOG_BUF_SHIFT=18
清除 dmesg Buffer
如果你想要在下次開機前 , 先清除 dmesg buffer , 你可以執行下面指令:
# dmesg -c
# dmesg
dmesg 時間標籤 (timestamp)
原則上 dmesg 是不會伴隨顯示時間標籤的 , 然而 linux 有提供以看見開機的每一行訊息的時間標籤的方法 ,
將 klogd service 啟用並設定紀錄訊息於 /var/log/kern.log 檔案裡 . dmesg 的訊息就會帶上時間標籤了.
# dmesg | grep "L2 cache"
[ 0.014681] CPU: L2 cache: 2048K
# grep "L2 cache" kern.log.1
Oct 18 23:55:40 ubuntu kernel: [ 0.014681] CPU: L2 cache: 2048K
全站熱搜