Answers:
什么是内核恐慌?
当内核无法正确加载或“怪胎”且无法正常启动或崩溃时(请参阅底部的编辑说明)。
为什么会发生?
托管更新,硬件故障,不支持的硬件,驱动器或分区发生故障或丢失(请参阅底部的编辑信用)
我如何理解发生内核恐慌?
观察启动提示(关闭安静的内核参数)或您的机器无法启动
它对系统有什么影响?
无法启动或系统崩溃
它仅在Linux中发生吗?
不,所有类似Unix的操作系统都可能出现内核崩溃。相当于Windows蓝屏死机
我该如何预防?
通常不会发生。测试更新并解决问题。使用稳定而不是开发分支。
附加说明:内核崩溃和系统故障/关闭可能直接导致计算机受到物理损坏。例如,在极端过热或磁盘损坏之前停止。有关直接报价,请参见底部的编辑信用。
编辑
每B. Roland丢失或损坏的磁盘或卷也可能导致这种情况。
(好点,我忽略了它)
Per Kees内核在运行时也会出现恐慌。
注意:当函数在内核内部正常失败时会发生,但是最常见的是在模块或内核加载期间发生(通常是在引导过程中)。我以为是在“启动或系统崩溃期间”触及了它,但是我看到我对(1)的回答是说它仅在启动期间发生。
Per rafalcieslak直接引述-'必须添加一件非常重要的事情:整个内核恐慌的重点是保护您的计算机。内核冻结不仅是因为它无法执行某些操作,还在于防止计算机过热,硬盘驱动器损坏以及任何其他硬件问题,如果执行了某些不正确的命令,则可能会冻结该模块(对于例如负责控制风扇的模块)无法加载等。这就是为什么内核更喜欢冻结而不是克服问题。
一个内核恐慌时内核检测到来自它无法恢复的错误发生。命名panic()
为处理这种情况的函数(通常通过转储一些调试信息和/或重新引导系统)是在非常早的UNIX版本之一中首次引入的,因此该名称是从那里来的(在大多数UNIX中,它仍然被称为-例如Mac OS X等操作系统)。
微软的NT内核中著名的“ 蓝屏死机”(通常称为致命系统错误,如VMS / OpenVMS)也是“内核恐慌”的一种形式。
内核可以(部分或暂时)从中恢复的linux内核错误称为内核oops(dmesg
有时您可能会在输出中看到这些错误)。
发生内核恐慌的原因可能是内核中的错误(例如,内核中的驱动程序)或硬件或软件问题,导致内核发生意外/不可预测的情况(例如,无法启动内核时)。init
处理,否则将被杀死)。
要找出原因,您可以查看屏幕上或串行控制台上是否打印了任何内容(如果已配置)。如果将其配置为这样做,那么您还可以让系统进行linux内核崩溃转储,以在发生紧急情况时将内核内存保存到磁盘,以便内核开发人员可以对其进行分析(当然,这要求将它能够写入磁盘)。在某些情况下,/var/log/messages
可能还会有有用的信息(例如,在某些情况下,从oops恢复可能会导致稍后导致不可恢复的错误)。有一些更详细的信息在这里。
@RobotHumans的答案解决了您问题的所有部分。但是,我想详细说明内核恐慌的原因。
首先,有两种类型的内核恐慌-软内核恐慌(也称为Oops)和(硬内核恐慌,也称为Aieee!)。
当系统遇到无法处理的异常时,系统将进入硬内核恐慌模式。软内核恐慌相对容易处理。
内核恐慌的原因
原因有几种,但最常见的原因如下:
同样重要的是要注意,只有位于内核空间内的模块才可能导致内核崩溃。lsmod
可以运行命令以获取动态加载的模块的列表。
要解决内核崩溃问题,请检查/ var / log / messages。有时,所有信息都可能记录在此处,而有时可能没有与内核崩溃有关的任何信息记录在此处。尽管不可避免地会陷入内核恐慌,但没有什么可担心的。