如何找出 Linux 崩溃的原因

如何找出 Linux 崩溃的原因

我的笔记本电脑经常会崩溃。屏幕会冻结,包括光标,锁定灯(大写锁定等)如果打开的话会关闭,但我的电池、电源和 wifi 灯仍然工作。我不确定这是否是内核恐慌,因为有时它会冻结,然后当我通过电源按钮关闭它时发出相同的声音,然后重新启动。很少,我会看到一个文本屏幕(不像启动文本),然后它会以相同的方式重新启动。我思考我在不同的线路上看到了“内核”和“恐慌”。但我不能确定。有一次,它做了同样的事情一分钟,但随后我可以移动鼠标,但所有键都不起作用。然后它崩溃并重新启动。

我正在试图找出是什么原因造成的。

最初,我认为这是一个散热问题,因为当我将笔记本电脑放在硬表面上的冷却风扇上时,它就不再发生,并且只有当我访问资源密集型网站时才会发生。然后我认为这是内存问题,因为热量已经得到处理,但内存溢出到交换分区。但现在,即使内存使用量较低并且热量没有在 psensor 中触发警报时,它也会崩溃(我将任何组件的警报设置为在 60C 时发出,而且我很确定自从我停止以来它还没有达到 80C)将我的笔记本电脑放在我的腿上)。

我以为我表弟已经安装了 Debian 8.2(Jessie),但cat /etc/debian_version返回“stretch/sid”。我正在使用 XFCE,它位于 Dell Inspiron 1520 上,该计算机最初具有 WindowsXP 操作系统(我们在安装 Debian 之前擦除了硬盘驱动器),并具有 2Gb RAM。内核版本为3.16.0-4-amd64;但是,我相信我的问题是关于 Linux 的总体情况,而不是特定版本。在擦除硬盘驱动器之后,在我们安装任何操作系统之前,我的表弟确实从专用磁盘运行了 memtest86。

我不知道我需要检查什么,也不知道如何检查它,如何确定什么是内核问题,等等。这是我听说我需要查看的内容(scite 仅用于打开文本文件):

  • scite /var/log/kern.log
  • scite /etc/rsyslog.conf
  • scite /etc/rsyslog.d/
  • scite /etc/rsyslog.d/50-default.conf
  • scite /var/log/syslog
  • sudo /usr/sbin/mcelog > mcelog.out
  • scite /var/log/dmesg
  • scite /var/log/syslog.1
  • scite /var/log/messages.1

其中有几个是空白的或类似的内容,例如 var/log/dmesg,只有一行(尚未记录任何内容)。我在 /var/log 中找不到 dmesg.1

直到最近我才能够隔离日志中的任何内容,因为我总是让计算机重新启动。最近一次,我强迫它关闭,而不是经历恐慌。我已经把它放下几天了。系统日志不包含今天之前的任何内容。在 kern.log 中,自上次关闭之日起的最后一件事是:

Oct 17 22:51:27 darty kernel: [  299.816045] mce: [Hardware Error]: Machine check events logged

之前的一切都非常重复,并且与错误发生前 5 分钟的情况完全相同。 (在某些情况下,它会在五分钟内关闭。)

sudo /usr/sbin/mcelog > mcelog.out 不返回任何内容,尽管该文件包含一堆晦涩难懂的内容;我假设它是机器代码或其他东西。

/var/log/syslog.1 包含一些...有趣的东西...其中很多就像 kern.log,很多关于 nouveau Iceweasel 的东西...其他重复的东西。 10 月 17 日 22:13,一行中出现了一堵由 NUL 字符组成的大墙,但那是距离上次崩溃大约 40 分钟。我想我在途中崩溃了几次...噢...在与上面的行完全相同的行之后,但在 syslog.1 文件中,是 NUL 的另一堵大墙,后面是

Oct 19 17:39:18 darty rsyslogd: [origin software="rsyslogd" swVersion="8.4.2" x-pid="1547" x-info="http://www.rsyslog.com"] start

仍然没有告诉我任何事情,除了我绝对不确定我使用的是哪个版本的 Debian(启动 USB 都是 8.2,我发誓。那么为什么这是 8.4.2,然后它告诉我我正在拉伸/sid,呃...)。

同一行(前面有较少的 NUL 字符)出现在 /var/log/messages.1 文件中。在此之前,接下来的 27 秒内大约有 45 行,除了秒差时间戳和源 ID 范围从 77 到 230,非连续但连续。

Oct 17 22:50:22 darty org.freedesktop.Tracker1[1900]: (tracker-store:2019): GLib-CRITICAL **: Source ID 77 was not found when attempting to remove it

但这些也位于不发生碰撞的地方。

嗯是的。我完全不知道如何确定实际错误是什么。我几乎可以通过在 CodinGame.com 网站上做某些事情来可靠地重现它(我知道古老的智慧是“如果会痛,就不要这样做。”好吧,我拥有一台电脑的全部原因是这样我可以做像 CodinGame 这样的事情。这与医学的类比是“不要站起来或走来走去。”我不能无限期地遵循它。)再说一遍,这不是热量,也不是记忆。我在面板上的两个小部件(小程序?)上都有传感器。但我如何找出错误出在哪里呢?我可以设置一些东西来捕获崩溃,然后通过玩 CodinGame 来引发它吗?

是的,我已经读过“如何确定我的计算机崩溃的原因?”以及与askubuntu上的措辞相关的大约5~10个问题。和如何找出导致我的机器冻结的原因?。后者给出的答案似乎不是我的问题,因为我的表弟在不到一个月前才安装了这个系统,除了轻度文本编辑和文件传输之外我还没有使用过它,而且有点重(不是MMORPG-大量(小型 Flash 小程序和 HTML5 重)浏览器使用。前者的答案看起来就像我之前找到的其他东西一样,没有找到解决方案。

TL;DR:一个人如何阅读日志文件来查找导致计算机崩溃的错误,如果日志文件中没有该错误,她如何找到该错误,以及可以采取哪些措施来修复该错误?

相关内容