當系統開機的過程中 , 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

 

arrow
arrow
    全站熱搜

    puffer 發表在 痞客邦 留言(0) 人氣()