温馨提示×

如何清理CentOS旧内核

小樊
39
2026-07-08 21:49:20
栏目: 智能运维

在 CentOS 中,随着系统更新,会保留多个旧内核版本。如果 /boot 分区较小,旧内核容易造成空间不足或启动项过多。下面按 CentOS 7 / 8 / Stream 说明如何安全清理旧内核。


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

uname -r

⚠️ 千万不要删除当前正在使用的内核!


二、查看已安装的内核

CentOS 7

rpm -qa | grep kernel

CentOS 8 / Stream

dnf list installed | grep kernel

三、使用官方推荐方式清理(最安全 ✅)

✅ CentOS 7

package-cleanup --oldkernels --count=2

保留最近 2 个内核,其余自动删除

只保留 1 个(不建议,除非空间非常紧张):

package-cleanup --oldkernels --count=1

✅ CentOS 8 / Stream

dnf remove --oldinstallonly --count=2

或:

dnf autoremove

四、手动删除指定内核(不推荐,仅高级用户)

1️⃣ 查看内核包名

rpm -qa | grep kernel

2️⃣ 删除指定内核(示例)

yum remove kernel-3.10.0-1160.el7.x86_64

或:

dnf remove kernel-core-4.18.0-xxx.x86_64

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

1️⃣ 查看 /boot 使用情况

df -h /boot

2️⃣ 删除旧 initramfs / vmlinuz

⚠️ 建议先确认不要删除当前内核

ls /boot

删除示例(谨慎):

rm -f /boot/initramfs-3.10.0-xxx.el7.x86_64.img
rm -f /boot/vmlinuz-3.10.0-xxx.el7.x86_64

六、重建 GRUB 启动菜单

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

七、防止旧内核无限堆积(重要)

修改内核保留数量:

CentOS 7

vi /etc/yum.conf
installonly_limit=2

CentOS 8 / Stream

dnf config-manager --setopt installonly_limit=2 --save

八、常见错误与解决

❌ 错误:/boot 空间不足

✅ 解决:

package-cleanup --oldkernels --count=1

❌ 删除后无法启动

✅ 解决:

  • 使用 救援模式
  • 重新安装内核:
yum install kernel

九、推荐做法总结 ✅

✅ 使用 package-cleanupdnf remove --oldinstallonly
✅ 至少保留 2 个内核
✅ 不要手动删除 /boot 文件,除非非常确定


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

  • CentOS 具体版本(cat /etc/centos-release
  • /boot 是否已满
  • 是否有报错信息

我可以给你 精确命令,避免误删。

0