/boot分区满时,首选apt purge卸载旧内核并update-grub;其次可手动删除非当前内核的vmlinuz、initrd.img等文件;还可借助baobab分析器定位大文件,限制journald日志大小,并检查fstab挂载项是否异常。

如果您发现银河麒麟系统中 /boot 分区空间已满,导致无法安装更新、升级内核或执行系统维护,则很可能是旧内核文件长期累积未清理所致。以下是多种安全、可操作的清理方法:
一、使用 apt 命令批量卸载旧内核
该方法适用于通过 apt 包管理器正常安装的内核,能自动处理依赖并清理 /boot 下对应文件,是最推荐的首选方式。
1、打开终端,执行 uname -r 查看当前正在运行的内核版本。
2、执行 dpkg --list | grep linux-image 列出所有已安装的内核镜像包。
3、对比后识别出除当前运行内核外的旧版本(如 linux-image-5.4.0-105-generic),保留最多两个历史版本以备回退。
4、执行 sudo apt purge linux-image-5.4.0-105-generic linux-image-extra-5.4.0-105-generic 卸载指定旧内核及其配套模块包。
5、执行 sudo update-grub 更新引导配置,确保 GRUB 菜单同步刷新。
二、手动删除 /boot 中残留文件
当 apt purge 失败(如因依赖损坏、包状态异常或非 apt 安装的内核)时,可进入 /boot 目录直接清理对应文件,但必须严格核对版本,避免误删当前内核。
1、执行 ls /boot/vmlinuz* 和 ls /boot/initrd.img* 查看所有内核镜像与初始化内存盘文件。
2、执行 ls /boot/config-* /boot/System.map-* /boot/abi-* /boot/retpoline-* 列出全部关联文件。
3、确认待删版本(例如 5.4.0-105)与当前运行内核(uname -r 输出)不一致后,逐项删除:
4、执行 sudo rm /boot/vmlinuz-5.4.0-105-generic
5、执行 sudo rm /boot/initrd.img-5.4.0-105-generic
6、执行 sudo rm /boot/config-5.4.0-105-generic /boot/System.map-5.4.0-105-generic /boot/abi-5.4.0-105-generic
7、执行 sudo update-grub 同步引导项。
三、使用磁盘空间分析器定位大文件
当不确定具体哪些文件占用空间,或怀疑存在非标准路径的内核残留(如第三方编译内核、测试版镜像)时,可通过可视化工具快速扫描 /boot 目录结构,辅助识别冗余项。
1、若未安装 baobab,执行 sudo apt install -y baobab 安装磁盘空间分析器。
2、执行 sudo baobab /boot 以 root 权限启动分析器并加载 /boot 目录。
3、在树状视图中观察各子目录与文件大小占比,重点关注 vmlinuz-*、initrd.img-* 及其同名前缀的 config、System.map 等文件。
4、右键点击可疑大文件,选择“在文件管理器中显示”进一步验证归属。
5、确认无误后,在终端中按前述手动删除步骤清理。
四、限制 systemd-journald 日志占用 /boot 相关空间
部分系统将 journald 持久日志存于 /var/log/journal,虽不直接位于 /boot,但若 /var 与 /boot 共享同一分区(如 LVM 合并根分区场景),journald 过度增长会间接加剧 /boot 所在逻辑卷空间压力。
1、执行 sudo journalctl --disk-usage 查看日志总占用量。
2、执行 sudo journalctl --vacuum-size=200M 将日志总量限制为 200MB。
3、执行 sudo systemctl restart systemd-journald 重启服务使配置生效。
4、执行 df -h /boot 验证释放效果(若 /boot 为独立挂载点)或 df -h /(若为根分区子目录)。
五、检查并修复 fstab 中重复或错误的 /boot 挂载项
异常的 /boot 挂载配置可能导致系统误将其他分区内容映射至 /boot 路径,造成空间统计失真或写入冲突,需排查 fstab 是否存在冗余条目。
1、执行 cat /etc/fstab | grep boot 提取所有含 boot 的挂载行。
2、执行 lsblk -f | grep -E "(boot|/boot)" 查看实际物理分区及其挂载点。
3、比对二者是否一致:仅应存在一条有效 /boot 挂载,且 UUID 或设备路径须与 lsblk -f 输出匹配。
4、若发现重复条目、挂载到错误设备(如 /dev/sda3 显示为 /boot 但实际应为 /dev/sda1),使用 sudo nano /etc/fstab 编辑并注释或删除错误行。
5、执行 sudo mount -a 测试配置语法及挂载有效性,无报错即保存成功。










