症状
突然,我登录后启动时出现一条消息“检测到内核包中存在问题”。每秒都会出现一条新消息,不停地出现(翻译如下)。
翻译:
已报告问题
检测到内核包中存在问题
我不知道是什么原因导致出现这些消息。如何获取有关系统崩溃的详细信息?
眼镜
我最近 12 天没有更新过内核 (3.19.7-200.fc21.x86_64)。从旧内核启动不会停止警告。
我今天安装了 5 个新软件包:subversion-1.8.11-1.fc21.x86_64、gitk-2.1.0-4.fc21.noarch、git-gui-2.1.0-4.fc21.noarch、subversion-libs-1.8.11-1.fc21.x86_64 和 libserf-1.3.7-2.fc21.x86_64
我安装了一些 gnome 扩展,但在重启之前,我使用了几个小时,没有任何问题。我禁用了扩展,但问题仍然存在。
我尝试过
我相信这些通知消息是 的一部分abrt
。但当我尝试获取更多详细信息时,abrt-cli list
没有显示当前月份的任何内容。
dmesg
没有显示任何可疑的东西(或者也许我误解了它。我会发布日志)。
根据评论所建议,我检查了/var/log/messages
、/var/log/syslog
和/var/log/kern.log
:
后两者不存在。tail /var/log/messages
包含很多下列内容(超过一千条)一遍又一遍重复(带有不同的时间戳):
May 26 16:39:28 [hostname] abrt-dump-journal-oops: Reported 1 kernel oopses to Abrt
May 26 16:39:30 [hostname] abrt-dump-journal-oops: abrt-dump-journal-oops: Found oopses: 1
May 26 16:39:30 [hostname] abrt-dump-journal-oops: abrt-dump-journal-oops: Creating problem directories
May 26 16:39:30 [hostname] abrt-server: Deleting problem directory oops-2015-05-26-16:39:30-585-0 (dup of oops-2015-04-28-15:49:00-21380-1)
May 26 16:39:30 [hostname] gnome-session: abrt-applet: repeated problem in kernel, not showing the notification
2015-04-28-15:49:00 通过以下方式检测到的问题abrt-cli list
:
id dadaa8ca8525cf44b21c438b086cc731ac73c2cd
reason: WARNING: CPU: 0 PID: 21350 at fs/block_dev.c:67 bdev_inode_switch_bdi+0x87/0x90()
time: Ter 28 Abr 2015 15:49:02 BRT
cmdline: BOOT_IMAGE=/boot/vmlinuz-3.19.3-100.fc20.x86_64 root=UUID=45f0c704-ada0-411d-95ba-50169ce0994a ro rd.md=0 rd.lvm=0 rd.dm=0 rd.luks=0 vconsole$
package: kernel
count: 1529
Directory: /var/tmp/abrt/oops-2015-04-28-15:49:00-21380-1
Relatado: https://retrace.fedoraproject.org/faf/reports/bthash/392cacbf6958e88053298dbce758bf6865c4db3f
答案1
首先,你的内核不是崩溃。如果它崩溃了,您的系统将完全冻结,您将无法使用它。
内核中可能会发生几种类型的问题。
A警告(警告),漏洞(BUG)或哎呀当内核的内置自检检测到可能导致系统不稳定或将来数据丢失的情况时,可能会发生这种情况。但是,一般来说,这些问题不会导致系统(立即)崩溃。通常,OOPS 是其中最严重的,并且会导致任何相关的用户空间进程
SIGKILL
从内核收到(“你应该死”,而不是“请走开”)信号。A恐慌是系统被严重破坏以至于无法继续运行的地方。在这种情况下,内核会停止执行(在打印堆栈跟踪之后,如果它能够这样做),并将控制权交给.... 什么都没有。通常。尽管如果你有一个崩溃内核,有时损坏的内核会尝试加载第二个内核,其目的是收集有关崩溃原因的信息,并尝试将其写入磁盘。一般来说,即使是非常强大的崩溃内核也不可能在不重新启动的情况下完全恢复系统状态,使其再次可用且稳定。
在我看来,碰撞是同义词恐慌。在很多情况下,可以安全地忽略WARN
或BUG
,数据丢失的概率非常低。如果在报告这些“问题”后您的系统继续运行,则几乎肯定不会引起恐慌。
您没有提供足够的日志(特别是dmesg
),让我无法判断这次崩溃的原因,但一般来说,当内核本身报告问题时,它会在内核环形缓冲区中体现出来。在控制台上dmesg
执行命令即可查看内核环形缓冲区。dmesg
看起来,在您的情况下,您可能遇到了一次性的 oops,该 oops 被abrt
崩溃事件通知系统(或向您显示该 oops 的 GNOME 用户界面基础结构)错误地处理。
5 月 26 日 16:39:30 segtic-1c505e gnome-session:abrt-applet:内核中重复出现问题,不显示通知
所以想它没有向你显示它,因为这是一个重复的问题,但它继续用同样的错误轰炸你。所以,要么abrt-applet
想它并没有轰炸你,但实际上还是这样做了,或者有另一个处理内核错误的程序(也许是另一个处理该错误的小程序abrt
?)没有检测到重复的问题,而是一遍又一遍地向你重复同样的问题。
所以这里有几个问题:
你没有给我任何
dmesg
表明重复问题。你展示的 ACPI 可能是一错误,但该错误在启动时很早就发生了,并且不会再发生。错误报告基础设施似乎有问题。我认为,在某种程度上,
abrt
知道它是针对同一事件(或原因相同的一系列独立事件)的重复消息,但无论如何,通知都会通过系统到达您的 UI。显然,这是与 Linux 内核相关的某种崩溃、OOPS、BUG 或 WARN 问题首先。但由于您发布的内核日志很少,而且不是特别令人担忧,因此问题的根源目前似乎难以捉摸。如果它是从早期启动开始就抱怨 ACPI 问题,它真的应该学会闭嘴;事实是主板 ACPI DSDT 几乎总是严重损坏和损坏,操作系统只需要学会尽可能地处理这个问题。作为最终用户,你对此无能为力。这并不意味着你的主板制造商仍会发布 BIOS 更新来尝试提高他们的 DSDT 正确性(好吧,无论如何,他们不太可能这样做)。
或者问题可能与 ACPI 完全无关,实际问题报告只是没有进入内核环形缓冲区。这确实很奇怪,我以前从未遇到过。就此而言,如果abrt
它没有解析,我不确定它使用什么机制来检测错误的存在dmesg
。
当谈到 Linux 内核问题以及这些问题在 UI 中的报告方式时,很少有简单的方法来诊断它。这是问题的本质。