直到最近,我使用 Fedora 26 内核时4.13.16-202.fc26.x86_64
都没有问题。但最近两次内核升级(4.14.4-200.fc26.x86_64
和4.14.5-200.fc26.x86_64
)让我出现内核恐慌。这是屏幕冻结前我唯一能得到的东西:
[0.061000] ? acpi_sleep_proc_init+0x2a/0x2a
[0.061000] ? set_debug_rodata+0x1?/0x1?
[0.061000] acpi_bus_scan+0x?f/0x90
[0.061000] acpi_scan_init+0xea/0XZZC
[0.061000] ? acpi_sleep_proc_init+0x2a/0x2a
[0.061000] acpi_init+0x2f8/0x356
[0.061000] d0_one_initcall+0x50/0x190
[0.061000] kernel_init_freeable+0x1a8/0x245
[0.061000] ? rest_init+0xb0/0xb0
[0.061000] kcrne1_init+0xe/0x101
[0.061000] ret_from_fork+0x25/0x30
[0.061000] Code: c? 01 00 00 00 00 ?4 le 7? Oh 41 83 £0 08 75 58 0f b6 03 ch
18 41 83 fc 20 ?4 10 41 83 fc 40 75 4? 48 8b 03 ch 0? 0f b7 03 ch 02 <8b> 03 48
89 01 ch 36 41 83 fc 10 ?4 23 7? 0d 41 83 fc 08 75 28
[0.061000] RIP: acpi_ex_sgstem_memorg_space_handler+0x16f/0x1c1 RSP: ffffb?0 140006640
[0.061000] CR2: ffffb701406a6000
[0.061000] ---[ end trace be3326226d4700d? ]â~@~Tâ~@~Tâ~@~T
[0.061010] Kernel panic â~@~T not syncing: attempted to kill init! exitcode=0x00 000009
[0.061010]
[0.061169] ---[ end Kernel panic - not syncing: Attempted to kill init! exit code=0x00000009
[0.061169]
有什么建议吗?
答案1
内核崩溃是因为init
进程终止,这是不应该发生的,并且会导致内核数据结构处于损坏状态。
这意味着问题不一定是由内核本身引起的。尝试使用以前运行正常的旧内核版本进行启动。
下一步做什么取决于问题是否是由内核版本还是其他原因引起的。
如果不是内核问题
init=/bin/bash
通过传递或init=/bin/sh
作为内核参数来启动到 shell 。然后开始在日志文件中寻找线索。
如果是内核问题
启动最新的工作内核版本。下载最新的工作内核版本和第一个损坏的内核版本的源代码。验证使用直接从这些源代码构建的内核时是否获得相同的结果。接下来开始查看两个版本之间的差异,以确定哪些差异实际上适用于您的系统。(您没有的硬件的驱动程序更改是一个明显的例子,说明不太可能相关)。
如果您觉得自己能胜任这项任务,您可以尝试创建一个单独的源树,其中包含一些来自工作版本的文件和一些来自损坏版本的文件,以识别哪个文件导致了损坏。