温馨提示×

怎么清理CentOS旧内核

小樊
41
2026-08-04 04:54:49
栏目: 智能运维

在 CentOS 系统中,随着内核更新,旧内核会不断积累,占用 /boot 空间,可能导致系统更新失败或 /boot 分区满。下面分 CentOS 7 / 8 / Stream 给你一套安全、常用的清理旧内核方法


一、查看当前正在使用的内核(⚠️ 不要删)

uname -r

例如:

3.10.0-1160.95.1.el7.x86_64

这个内核绝对不能删


二、查看系统中已安装的内核

CentOS 7

rpm -qa | grep kernel

CentOS 8 / Stream

dnf list installed | grep kernel

三、CentOS 7 清理旧内核(推荐方式)

✅ 方法 1:使用 package-cleanup(最安全,官方推荐)

yum install -y yum-utils

保留 2 个内核(当前 + 1 个旧):

package-cleanup --oldkernels --count=2 -y

✅ 自动删除多余旧内核
✅ 不会删除正在运行的内核


⚠️ 方法 2:手动删除(不推荐新手)

rpm -qa | grep kernel

然后手动删除(示例):

yum remove kernel-3.10.0-957.el7.x86_64

四、CentOS 8 / Stream 清理旧内核

✅ 方法 1:使用 dnf

查看当前内核:

uname -r

查看已安装内核:

dnf list installed kernel

删除指定旧内核:

dnf remove kernel-core-<版本>

✅ 方法 2:限制保留内核数量(推荐)

编辑配置文件:

vi /etc/dnf/dnf.conf

添加或修改:

installonly_limit=2

然后清理:

dnf autoremove

五、清理 /boot 空间(如果已经满了)

1️⃣ 查看 /boot 使用情况

df -h /boot

2️⃣ 手动删除旧 initramfs(谨慎)

ls /boot

删除旧版本(⚠️ 不要删当前内核相关文件):

rm -f /boot/initramfs-旧版本.img
rm -f /boot/vmlinuz-旧版本

六、GRUB 菜单清理(可选)

grub2-mkconfig -o /boot/grub2/grub.cfg

七、建议的安全策略 ✅

  • ✅ 至少保留 2 个内核
  • ✅ 不要删除当前正在运行的内核
  • ✅ 生产环境先备份或确认可回滚

八、常见问题

❓ 删除内核后无法启动?

  • 保留一个可用旧内核
  • 使用 救援模式 重新安装内核

/boot 满了无法更新?

  • 先清理旧内核
  • 或临时扩容 /boot

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 是否 /boot 已满
  • ✅ 是否是生产服务器

我可以给你精确到命令级别的操作方案。

0