如何使用 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,[电子邮件受保护]/”

相关内容