引导分区为什么容易满
引导分区容量通常只有 1G 上下,而每次内核升级都会往里放一份内核镜像与初始化内存盘,旧版本默认保留不删。系统运行一两年、经历多次升级后,这个分区就会被累积的旧内核占满,接着升级内核时报空间不足,严重时连引导都失败。
清理的原则
只清理不在使用的旧版本,正在运行的内核必须保留,通常再留一到两个较新的旧内核作为回退路径。清理要经过包管理器而不是手工删文件,否则包数据库里仍记录着这些内核,后续升级会遇到依赖与文件校验异常。
基本信息
| 典型容量 | 引导分区常见 500M 到 1G |
|---|---|
| 占用来源 | 内核镜像、初始化内存盘、引导配置 |
| 清理工具 | dnf 的 installonly 查询与 remove,deb 系用自动清理 |
| 保留策略 | 至少保留当前内核与一个旧内核 |
典型使用场景
- 内核升级报空间不足,升级事务中途失败
- 巡检发现引导分区使用率长期高于阈值
- 系统更新后重启进了旧内核,需要确认可用版本清单
- 救火时清理空间以便完成正在中断的更新事务
- 制定例行巡检项,把引导分区与内核数量纳入监控
定位占用
定位占用
df -h /boot # 空间使用情况
uname -r # 当前运行内核,绝对不能删
ls /boot/vmlinuz-* # 已安装内核列表
rpm -q kernel # 包管理器视角的内核清单
du -sh /boot/* | sort -h | tail -5 # 占空间的大头清理(rpm 系)
清理(rpm 系)
dnf repoquery --installonly --latest-limit=-2 -q # 列出可保留之外的旧内核
# 核对输出里不含 uname -r 的结果后执行:
dnf remove -y $(dnf repoquery --installonly --latest-limit=-2 -q)
df -h /boot # 复核释放效果
# 需要刷新引导菜单时按发行版提供的工具执行(示例):
# grub2-mkconfig -o /boot/grub2/grub.cfg判断与操作
| 判断项 | 检查方式 | 结论 |
|---|---|---|
| 当前内核 | uname -r | 必须保留,任何清理都不得包含 |
| 已装内核数 | rpm -q kernel | 多于三个可考虑清理旧版 |
| 引导分区使用率 | df -h /boot | 超过八成应安排清理 |
| 回退内核 | 保留一个旧内核 | 升级出问题时可回退 |
| 引导配置 | 按发行版工具刷新 | 确认新内核已进入菜单 |
换用 deb 系发行版时清理方式不同,用包管理器的自动清理命令删除旧内核;无论哪种系统,都把「引导分区使用率与内核数量」写进例行巡检,比等到升级失败再处理更主动。