温馨提示×

如何删除CentOS旧内核

小樊
37
2026-08-30 05:52:59
栏目: 智能运维

在 CentOS 系统中删除旧内核,可以释放磁盘空间并避免启动时内核过多。下面按 CentOS 7 / 8 / Stream 分别说明,并给出最安全、推荐的做法


一、查看当前正在使用的内核(非常重要)

千万不要删除当前正在运行的内核!

uname -r

输出示例:

3.10.0-1160.el7.x86_64

记住这个版本号。


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

CentOS 7(使用 RPM)

rpm -qa | grep kernel

示例输出:

kernel-3.10.0-1160.el7.x86_64
kernel-3.10.0-1127.el7.x86_64
kernel-3.10.0-1062.el7.x86_64

CentOS 8 / Stream(使用 DNF)

dnf list installed kernel

或:

rpm -qa | grep kernel-core

三、安全删除旧内核(推荐方式)

✅ 方法一:使用 package-cleanup(CentOS 7 最佳)

CentOS 7 自带工具,保险、不会误删当前内核。

package-cleanup --oldkernels --count=1

说明:

  • --count=1:只保留 1 个最新内核
  • 可改为 --count=2 保留两个

✅ 方法二:使用 DNF(CentOS 8 / Stream 推荐)

dnf remove --oldinstallonly

或只保留 2 个:

dnf remove --oldinstallonly --installonly_limit=2

✅ 方法三:手动删除(不推荐,除非你很确定)

非常不推荐新手使用

rpm -e kernel-3.10.0-1127.el7.x86_64

⚠ 注意事项:

  • 不要删除 uname -r 显示的那个
  • 不要删除 kernel-corekernel-modules 之外的依赖包

四、设置系统自动保留内核数量(推荐)

CentOS 7

编辑配置文件:

vi /etc/yum.conf

添加或修改:

installonly_limit=2

CentOS 8 / Stream

vi /etc/dnf/dnf.conf

设置:

installonly_limit=2

五、清理后更新 GRUB(可选但建议)

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

六、常见问题

❓ 删除内核会影响系统吗?

✅ 只要保留一个可启动内核,就不会影响系统。

❓ 删错了怎么办?

  • 重启时选择旧内核
  • 或使用 Live CD / 救援模式重新安装内核

七、总结(最安全方案)

CentOS 7

package-cleanup --oldkernels --count=1

CentOS 8 / Stream

dnf remove --oldinstallonly

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

  • CentOS 版本 (cat /etc/centos-release)
  • 当前内核 (uname -r)
  • 是否是生产服务器

我可以帮你确认哪些内核可以安全删除

0