如何使用 netconsole 帮助解决内核恐慌?

Pug*_* Se 7 networking kernel gentoo kernel-panic

当我尝试以 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=@/,6666@192.168.0.27/00:18:f3:a8:09:61                                          
#kernel /boot/linux-3.0.6-gentoo-debug root=/dev/md3 netconsole=6665@192.168.0.26/eth0,6666@192.168.0.27/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
Run Code Online (Sandbox Code Playgroud)
  • 第一次因内核恐慌而失败
  • 第二个是我尝试使用 netconsole
  • 第 3 次开始但使用错误/旧根

另一台计算机正在运行我启动的 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. 有什么方法可以让我在恐慌后向上滚动?

小智 5

我刚刚在使用 3.5.0 内核的 gentoo 上遇到了同样的问题。无论是什么在线示例,我都尝试过没有输出到客户端,直到我运行以下命令:

 dmesg -n 7

我最初尝试

dmesg -n 8

这是在内核文档中建议的,但返回了

本地主机 ~ # dmesg -n 8
dmesg:未知级别“8”

dmesg -n 7 在哪里工作

本地主机 ~ # dmesg -n 7
本地主机 ~ # 回声检查 > /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: 数据检查完成。

顺便说一句,这是我设置 netconsole 的方法:

modprobe netconsole netconsole="@/eth0,30000@192.168.1.31/"