如何使用 netconsole 來幫助解決核心恐慌?

如何使用 netconsole 來幫助解決核心恐慌?

當我嘗試以 root 身分使用 raid 時,我的系統出現了恐慌。

我想在恐慌發生之前讀取內核輸出,但無法向上滾動。谷歌搜尋了一下後,我想嘗試 netconsole。但我在第二台機器上根本沒有輸出

我目前的 grub.conf 的相關部分

title Gentoo Linux 3.0.6
root (hd0,0)
kernel /boot/linux-3.0.6-gentoo root=/dev/md3

title Gentoo Linux 3.0.6 (debug netconsole)                                                                                                    
root (hd0,0)                                                                                                                                   
kernel /boot/linux-3.0.6-gentoo-debug root=/dev/md3 netconsole=@/,[email protected]/00:18:f3:a8:09:61                                          
#kernel /boot/linux-3.0.6-gentoo-debug root=/dev/md3 [email protected]/eth0,[email protected]/00:18:f3:a8:09:61

title Gentoo Linux 3.0.6 (no root/auto root)
root (hd0,0)
kernel /boot/linux-3.0.6-gentoo
  • 第一個因內核恐慌而失敗
  • 第二個是我嘗試使用 netconsole 的一個
  • 第三個啟動但使用錯誤/舊的根

另一台電腦正在運行我啟動的 Kubuntu LiveCD nc -u -l 6666
如果我使用第三個 grub 選項啟動(第一台)計算機,我可以運行nc -u 192.168.0.27 6666與第二台計算機進行通訊。

/boot/linux-3.0.6-gentoo和之間的差異/boot/linux-3.0.6-gentoo-debug是我啟用了:

  • 內核駭客 -> 內核調試
  • 內核駭客 -> 將每個啟動 printk 訊息延遲 N 毫秒
  • 裝置驅動程式 -> 網路設備支援 -> 網路控制台日誌記錄支持

問題

  1. 我的(第二個)grub 配置定義正確嗎?
  2. 我應該啟用更多核心配置選項嗎?
  3. 是否有關於我應該提供詳細資訊的特定機器硬體的更多資訊?
  4. 有什麼方法可以讓我在恐慌後向上滾動嗎?

答案1

我剛剛在 3.5.0 核心的 gentoo 上遇到了同樣的問題。無論我嘗試什麼線上範例,直到運行以下命令之前都沒有輸出到達客戶端:

dmesg -n 7

我最初嘗試過

dmesg -n 8

這是內核文檔中建議的,但返回了

本地主機 ~ # dmesg -n 8
dmesg:未知級別“8”

dmesg -n 7 工作的地方

本地主機 ~ # dmesg -n 7
localhost ~ # 回顯檢查 > /sys/block/md0/md/sync_action

這是我在客戶端得到的

資料儲存1 ~ # nc -l -p 30000 -u
[9698.913098]md:RAID陣列md0的資料檢查
[9698.913112] md:最小_保證_速度:1000 KB/秒/磁碟。
[9698.913124] md:使用最大可用空閒IO頻寬(但不超過200000 KB/秒)進行資料檢查。
[9698.913150] md:使用128k窗口,總共超過1048512k。
[9718.197555]md:md0:資料檢查完成。

順便說一句,這是我設定網路控制台的方法:

modprobe netconsole netconsole =“@/eth0,[電子郵件受保護]/”

相關內容