如何处理内核恐慌
简介¶
有时,内核安装会出错,您需要回溯。
这可能有很多原因,例如 /boot
分区空间不足、安装中断或第三方应用程序出现问题。
幸运的是,我们总能做些什么来拯救局面。
尝试使用上一个内核重新启动¶
首先尝试使用上一个内核重新启动。
- 重新启动系统。
- 到达 GRUB 2 启动屏幕后,将选择移动到对应于上一个内核的菜单项,然后按
enter
键。
系统重新启动后,您就可以修复它了。
如果系统无法启动,请尝试 救援模式(见上文)。
卸载损坏的内核¶
最简单的方法是卸载无法正常工作的内核版本,然后重新安装它。
注意
您无法删除正在运行的内核。
显示当前运行的内核版本
uname -r
检查已安装内核列表
dnf list installed kernel\* | sort -V
但以下命令可能更实用,因为它只返回安装了多个版本的软件包
dnf repoquery --installed --installonly
要删除特定内核,可以使用 dnf
,指定您之前检索到的内核版本
dnf remove kernel-core-<version>
示例
dnf remove kernel-5.14.0-427.20.1.el9_4.x86_64
或使用 dnf repoquery
命令
dnf remove $(dnf repoquery --installed --installonly --latest=1)
您现在可以升级系统并尝试重新安装最新的内核版本。
dnf update
重新启动并查看新内核这次是否正常工作。
救援模式¶
救援模式对应于旧的单用户模式。
注意
要进入救援模式,您必须提供 root 密码。
要进入救援模式,最简单的方法是在 grub 菜单中选择以 0-rescue-*
开头的行。
另一种方法是编辑 grub 菜单中的任意一行(按“e”键),并在以 linux
开头的行的末尾添加 systemd.unit=rescue.target
,然后按 ctrl+x
将系统引导到救援模式。
注意
然后您将处于 qwerty 模式。
进入救援模式并输入 root 密码后,就可以修复系统了。
为此,您可能需要使用 ip ad add ...
配置临时 IP 地址(参见我们管理员指南中的网络章节)。
最后机会:Anaconda 救援模式¶
如果以上方法都不起作用,您仍然可以从安装 ISO 启动并修复系统。
本说明文档不涵盖此方法。
系统维护¶
清理旧内核版本¶
您可以删除旧的已安装内核软件包,只保留最新版本和正在运行的内核版本
dnf remove --oldinstallonly
限制已安装内核版本的数量¶
我们可以通过编辑 /etc/yum.conf
文件并设置 installonly_limit 变量来限制内核版本的数量
installonly_limit=3
注意
您应该始终至少保留最新的内核版本和备份版本。
作者:Antoine Le Morvan
贡献者:Steven Spencer, Ganna Zhyrnova