如何处理内核恐慌
简介¶
有时,内核安装会出现问题,您需要回滚。
造成这种情况的原因可能有很多,例如 /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