首页/系统/信创系统运维速查//boot 占满导致内核升级失败
常见问题65 条

/boot 占满导致内核升级失败

/boot 通常 1G 上下,旧内核累积后装新内核报空间不足:完查用量与内核数量,再用包管理卸载未在用的旧内核。

信创系统运维速查系统更新于 2026-10-13

引导分区为什么容易满

引导分区容量通常只有 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 系发行版时清理方式不同,用包管理器的自动清理命令删除旧内核;无论哪种系统,都把「引导分区使用率与内核数量」写进例行巡检,比等到升级失败再处理更主动。

易错点

  • 清理前没核对 uname -r,误删正在运行的内核,重启后引导失败
  • 手工删除引导分区里的内核文件而不经过包管理器,包数据库记录与实际文件不一致,后续升级报校验异常
  • 把旧内核全部清光,新内核出问题时没有回退选项,只能靠救援介质
  • 只在报错时清理,缺乏巡检机制,同样的问题过几个月会再次出现

数据来源与参考

  • man 8 dnf
  • openEuler 官方文档(内核与引导)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌