诊断内核崩溃

诊断内核崩溃

我有一台运行 Ubuntu 9.04 并安装了 KDE 桌面的 PC。我将其用作文件/打印机/IMAP 服务器。通常,我会打开它,然后使用其他计算机进行工作。经过几个小时的等待,屏幕上只显示登录提示,系统就会崩溃 - 滚动锁定和大写锁定键盘灯闪烁。

我想修复这个问题。

然而,作为一名 Linux 新手,我不知道从哪里开始。

那么,问题是,诊断恐慌原因的最佳方法是什么?

我搜索了一下,但得到的答案往往很模糊,如果有的话。理想情况下,答案最终会是一个流程图,其中列出了缩小恐慌原因所需的步骤。

请参阅下面的我的回复以了解更多详细信息和问题。

答案1

这是我所做的(请随意修改下面的任何建议):

更新软件

我注意到,在下面提到的控制台视图中,在出现恐慌消息之前有一个对 bitmap_weight 的调用。我查看了 nVidia 的网站,找到了新版本的视频驱动程序,所以我下载并安装了它。我还运行了更新管理器来更新机器上的所有软件。我仍然会遇到恐慌,但两次恐慌之间的间隔似乎更长。我想,确保你拥有所有最新的更新总是明智的。更新:不,恐慌没有改变,即使 Ctrl-Alt-F7 控制台也显示相同的消息(我如何将其写入文件?!)。

Memtest86+ (链接)

如果尚未出现,则在启动过程中按“esc”将显示 grub 菜单。此菜单上有一个运行 Memtest86+ 的选项。在 Ubuntu 9.04 上,这是 V2.11。他们的网站上有 V4.00。您需要下载 ISO CD 映像,用它刻录 CD,重新启动计算机并从 CD 启动。对于我的问题,默认测试没有突出显示任何问题。按“c”显示配置菜单,这里有一个可以执行的附加测试 - 位淡入淡出测试。这个测试需要很长时间才能运行(在我输入这段文字时它正在运行)。如果这确实突出显示了问题,请尝试更换内存芯片并重复测试。如果仍然失败,那么您可能需要一块新主板。

测试结果:我今天早上检查了 PC,发现内存测试仍在运行 - 9 小时,没有错误。一开始我有点困惑,因为它正在进行位衰减测试,计时器显示 20 分钟。我以为它已经重新启动,但实际上计时器只是自位衰减测试开始以来的时间。切换回默认测试会导致显示的时间显示总正常运行时间。所以看来内存没问题。

kexec-tools 和控制台视图

我现在已经安装了 kexec-tools,尽管它很复杂,所以我认为目前不会得到任何有用的东西。然而,在安装过程中,我遇到了列出一些有用的键盘快捷键的页面。登录时,我按下 Ctrl-Alt-F8 显示控制台输出。我让机器继续运行,结果它崩溃了 - 控制台确实显示了一些消息,其中一条是崩溃消息。现在,如果将此输出保存到文件中,它将非常有用,因为它只有大约 25 行可见的消息。有人知道这个文件在哪里或如何获取它来保存输出吗?

因此,在 X 控制台(Ctrl-Alt-F8 屏幕)中,日志中的一个函数是 bitmap_weight,所以我认为它可能是视频卡。

关闭视频

/etc 文件夹中有一组文件夹,名为 rc0.d、rc1.d 等,这些文件夹包含一组用于设置系统的脚本。通常,rc2.d 中的脚本会在您打开系统时执行。在这里,启动窗口管理器的脚本称为 Gnome 的 S30gdm 和 KDE 的 S30kdm。将它们重命名为 K70gdm / K70kdm 并重新启动系统。现在您有一个文本提示登录,GUI 被禁用。这样做后,系统变得更加稳定,它整晚都保持运行,这是以前没有做到的。我有一块 nVidia 显卡,查看他们的网站后,我发现最近对视频驱动程序进行了更新。我现在已经安装了它,看看问题是否仍然存在。我应该在这里指出,我确实会使用任何最近的更新来保持系统相当最新,我认为有一个内核更新可能会影响旧的视频驱动程序。

最后,要恢复 GUI,将 K70gdm 和/或 K70kdm 重命名回 S30gdm / S30kdm 并重新启动。

答案2

我的方法是获取内核崩溃的完整输出(作为控制台的输出),然后通过 Google 查找导致崩溃的驱动程序/子系统。可以在靠近底部的输出中找到。

发射台是搜索 Ubuntu 特定问题的好地方。

此外,不能排除硬件故障,但同时,也可能是驱动程序有问题。

有时这些问题很难诊断,除非是别人已经发现的问题。

答案3

空闲时就会死机?试试 memtest(它应该在 grub 的退出菜单中)。

成功的 memtest 正常运行时间以小时为单位来衡量。

相关内容