温馨提示×

CentOS怎样清理旧内核

小樊
37
2026-07-20 15:39:25
栏目: 智能运维

在 CentOS 系统中,随着系统更新,会保留多个旧内核版本。如果 /boot 分区空间不足,或者你想保持系统整洁,可以清理旧内核。下面是安全、推荐的做法


一、查看当前正在使用的内核

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

uname -r

示例输出:

3.10.0-1160.95.1.el7.x86_64

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

CentOS 7 / 8(RPM 系)

rpm -qa | grep kernel

或:

yum list installed | grep kernel

三、CentOS 8 / Stream(推荐方式 ✅)

CentOS 8 使用 dnf,官方推荐用 dnf 管理内核。

1️⃣ 查看当前内核

uname -r

2️⃣ 保留最新 2 个内核(推荐)

dnf remove --oldinstallonly

或指定数量:

dnf remove --oldinstallonly --installonly_limit=2

最安全、最推荐


四、CentOS 7(手动方式)

1️⃣ 查看已安装内核

rpm -qa kernel

2️⃣ 删除指定旧内核(不要删当前使用的)

sudo yum remove kernel-3.10.0-1160.83.1.el7.x86_64

⚠️ 建议至少保留 2 个内核(一个当前,一个备用)


五、使用 package-cleanup(CentOS 7 专用)

package-cleanup --oldkernels --count=2

说明:

  • --count=2:只保留 2 个最新内核
  • 自动跳过当前正在运行的内核

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

如果 /boot 已经满了,可以先手动删除旧内核文件:

1️⃣ 查看 /boot

ls /boot

2️⃣ 删除旧内核相关文件(谨慎)

例如:

rm -f /boot/vmlinuz-3.10.0-xxx
rm -f /boot/initramfs-3.10.0-xxx.img
rm -f /boot/System.map-3.10.0-xxx

然后修复依赖:

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

七、验证 GRUB 是否正常

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

八、建议保留策略 ✅

场景 建议
生产服务器 至少保留 2 个内核
/boot 很小 只保留 1~2 个
桌面 / 测试 可只保留最新

九、常见问题

❓ 删除内核后无法启动?

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

❓ 删除后空间没释放?

yum clean all

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是否 /boot 已满
  • ✅ 是否物理机 / 云服务器

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

0