查看 Linux 系统已安装的内核(全平台指南)
无论您使用哪款发行版,查看已安装内核的方法都围绕包管理工具展开。下面按包管理器类型分别说明。
一、Debian / Ubuntu 系(使用 apt / dpkg)
1. 列出所有已安装的内核镜像包
dpkg -l | grep linux-image
- 说明:
dpkg -l列出所有已安装包,grep过滤出内核镜像。 - 输出示例:
ii linux-image-5.4.0-100-generic 5.4.0-100.113 amd64 Linux kernel image ii linux-image-5.15.0-91-generic 5.15.0-91.101 amd64 Linux kernel image
2. 使用 apt 命令(同样适用)
apt list --installed | grep linux-image
注意:
apt命令行界面不稳定,但手动查看无碍。
3. 区分手动安装 vs 自动安装(依赖)
- 查看自动安装的内核(通常是系统更新时自动保留的旧版本):
apt-mark showauto | grep linux-image - 查看手动安装的内核(用户主动
apt install的):apt-mark showmanual | grep linux-image
二、RHEL / CentOS / Fedora 系(使用 yum 或 dnf)
现代 Fedora 及 RHEL 8+ 默认使用
dnf,旧版 RHEL/CentOS 7 使用yum。两者命令结构几乎一致,以下统一用dnf表示,您可酌情替换为yum。
1. 使用 rpm 直接查询(最通用)
rpm -qa | grep kernel
- 说明:
rpm -qa列出所有已安装的 RPM 包,grep筛选包含 “kernel” 的行。 - 输出示例:
kernel-3.10.0-1160.el7.x86_64 kernel-4.18.0-477.10.1.el8_8.x86_64 kernel-core-6.5.6-200.fc38.x86_64 kernel-modules-6.5.6-200.fc38.x86_64注意:输出可能包含
kernel-core、kernel-modules等子包,它们都属于同一内核版本。
2. 使用 dnf list installed(更规范)
dnf list installed kernel*
或者(只列内核镜像,不列模块):
dnf list installed kernel | grep -v kernel-
- 实际推荐直接使用
rpm -qa | grep ^kernel-来过滤出主内核包。
3. 查看哪些内核是作为依赖自动安装的(RHEL 系)
RHEL 系没有像 apt-mark 那样直接的内置命令,但可以通过 dnf history 或查看安装日志辅助。通常手动安装的包会记录在 /root/.bash_history 或 dnf history 中。若需判断,可借助 repoquery(需安装 dnf-utils):
dnf repoquery --installed --requires kernel-core | grep kernel
但更简单的方式是直接通过 dnf remove --dry-run 模拟删除,看哪些会作为依赖被移除(谨慎操作)。
三、通用操作(所有发行版)
查看当前正在运行的内核版本
uname -r
- 输出当前内核版本号,例如
5.15.0-91-generic或4.18.0-477.10.1.el8_8.x86_64。
查看系统启动菜单中可选的内核(GRUB)
grep menuentry /boot/grub2/grub.cfg # RHEL/CentOS
grep menuentry /boot/grub/grub.cfg # Debian/Ubuntu(视引导方式)
此命令可直观看到引导时可选的内核列表,但该列表并不代表已安装包,只反映引导配置。
附:清理旧内核的建议
- Debian/Ubuntu:使用
sudo apt autoremove --purge会自动移除旧内核(标记为自动安装的)。 - RHEL/CentOS:使用
dnf remove kernel-<旧版本>或yum remove kernel-<旧版本>手动删除。 - Fedora:同样使用
dnf remove kernel-core-<旧版本>。 - 安全准则:永远保留至少一个已知能正常启动的旧版本内核,以防新内核故障。
总结对比
| 任务 | Debian/Ubuntu (apt) | RHEL/CentOS/Fedora (yum/dnf) |
|---|---|---|
| 列出所有已安装内核包 | dpkg -l | grep linux-image |
rpm -qa | grep ^kernel- |
| 查看当前运行内核 | uname -r(通用) |
uname -r(通用) |
| 区分自动安装内核 | apt-mark showauto | grep linux-image |
需借助额外工具或手动判断 |
| 删除指定旧内核 | sudo apt purge linux-image-X.X.X |
sudo dnf remove kernel-X.X.X |