![如何调查总挂起的原因?](https://linux22.com/image/48322/%E5%A6%82%E4%BD%95%E8%B0%83%E6%9F%A5%E6%80%BB%E6%8C%82%E8%B5%B7%E7%9A%84%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
我的 Arch 机器有时会挂起,突然对鼠标或键盘没有任何响应。光标被冻结。 Ctrl-Alt-Backsp 不会停止 X11,而 ctrl-alt-del 则完全不执行任何操作。 conky 和icewm 中的CPU、网络和磁盘活动图停止更新。几分钟后风扇打开。让计算机执行任何操作的唯一方法就是关闭电源。
启动时,CPU温度监视器显示70至80C。在悬挂之前,我通常会进行低强度的活动,例如网上冲浪,温度约为 50 摄氏度。
与正常关闭相比,日志没有显示任何特殊情况。内存检查器运行良好,零缺陷。
我如何调查挂起的原因?我可以找到额外的信息来寻找线索吗?还有什么比关闭电源更不剧烈的事情来获得某种行动,即使只是一些有限的外壳或只是蜂鸣声,但可能会提供线索?
该机器是一台 Gateway P6860 17 英寸笔记本电脑(笨重但功能强大),运行 Arch 64 位,最新版本(截至 2011 年 3 月)。我使用 Arch 很长一段时间没有这个问题,切换到 Ubuntu 大约一周然后退回到新安装的 Arch 上。这就是绞刑开始的时候。
更新:是的,肯定是过热了。在某一温度下,鼠标和键盘会停止工作,有时会在冷却几分钟后恢复正常工作。在较高温度下,会发生更糟糕的情况,例如完全无响应,包括忽略 SysRq。这种情况之后不久就会突然断电。我买了一台新电脑8D解决了这个问题
答案1
关于冻结,有以下几种选择:
console=ttyS0
使用串行端口(如果您的盒子有一个串行端口)可以通过添加到启动选项来获取转储,如上所述这里。您需要第二台带有串行端口和空调制解调器电缆的计算机来捕获转储文件。使用 netconsole 通过网络获取转储,看这里。
使用 kexec/kdump 这样你就可以获得本地转储,看这里。
关于干净断电问题,我建议您使用SysRq 魔法键“S”同步光盘,“U”安装它们,然后重新“启动”盒子(这些字母是您应该与 alt-sysrq 一起键入的字母)。
编辑:如果您将 oops/trace 发布到 lkml,您应该使用最新(最好是最新)版本的内核,并且没有专有模块。
答案2
Frederik 的答案涉及神奇的 SysRq 和内核转储,如果内核仍在运行,而不是真正挂起,那么它将起作用。由于某种原因,内核可能正在忙循环。
事实上,它不响应 Ctrl-Alt-Del,这告诉我情况可能并非如此,并且机器正在严重锁定。这意味着硬件故障或密切相关的故障,例如错误的驱动程序。
如果你让它运行足够长的时间,你的内存检查测试就很好。您还应该尝试其他方法来尝试给系统施加压力,例如压力Linux。长期运行的基准测试也很好。
另一件可以尝试的事情是使用 Ubuntu Live CD 启动系统并尝试正常使用系统。如果像这样暂时返回 Ubuntu 不会导致问题再次出现,那么很可能它实际上并不是硬件损坏,而是相关问题之一,例如错误的驱动程序或错误配置的内核。像 Ubuntu 这样更流行的发行版很可能比 Arch 这样的发行版拥有更稳定的内核配置,这仅仅是因为在发行版的测试阶段尝试了更多的机器。