在 CentOS 系统中,随着系统更新,会保留多个旧内核版本。如果 /boot 分区空间不足,或者你想保持系统整洁,可以清理旧内核。下面是安全、推荐的做法。
千万不要删除正在运行的内核
uname -r
示例输出:
3.10.0-1160.95.1.el7.x86_64
rpm -qa | grep kernel
或:
yum list installed | grep kernel
CentOS 8 使用 dnf,官方推荐用 dnf 管理内核。
uname -r
dnf remove --oldinstallonly
或指定数量:
dnf remove --oldinstallonly --installonly_limit=2
✅ 最安全、最推荐
rpm -qa kernel
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 已经满了,可以先手动删除旧内核文件:
/bootls /boot
例如:
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
grub2-mkconfig -o /boot/grub2/grub.cfg
| 场景 | 建议 |
|---|---|
| 生产服务器 | 至少保留 2 个内核 |
/boot 很小 |
只保留 1~2 个 |
| 桌面 / 测试 | 可只保留最新 |
yum clean all
如果你愿意,可以告诉我:
/boot 已满我可以给你精确到命令级别的方案。