在 CentOS 中,随着系统更新,会保留多个旧内核版本。如果 /boot 分区较小,旧内核容易造成空间不足或启动项过多。下面按 CentOS 7 / 8 / Stream 说明如何安全清理旧内核。
uname -r
⚠️ 千万不要删除当前正在使用的内核!
rpm -qa | grep kernel
dnf list installed | grep kernel
package-cleanup --oldkernels --count=2
保留最近 2 个内核,其余自动删除
只保留 1 个(不建议,除非空间非常紧张):
package-cleanup --oldkernels --count=1
dnf remove --oldinstallonly --count=2
或:
dnf autoremove
rpm -qa | grep kernel
yum remove kernel-3.10.0-1160.el7.x86_64
或:
dnf remove kernel-core-4.18.0-xxx.x86_64
df -h /boot
⚠️ 建议先确认不要删除当前内核
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
grub2-mkconfig -o /boot/grub2/grub.cfg
修改内核保留数量:
vi /etc/yum.conf
installonly_limit=2
dnf config-manager --setopt installonly_limit=2 --save
✅ 解决:
package-cleanup --oldkernels --count=1
✅ 解决:
yum install kernel
✅ 使用 package-cleanup 或 dnf remove --oldinstallonly
✅ 至少保留 2 个内核
✅ 不要手动删除 /boot 文件,除非非常确定
如果你愿意,可以告诉我:
cat /etc/centos-release)/boot 是否已满我可以给你 精确命令,避免误删。