银河麒麟系统/boot分区满需清理旧内核:先用uname -r查当前内核,再用dpkg或rpm列出已安装内核,比对后卸载非当前版本;推荐apt purge,失败则手动删除/boot中对应版本的vmlinuz、initrd.img等文件。

银河麒麟系统多次升级后,/boot分区被旧内核文件持续占用,每个版本常占200–500MB,极易触发“/boot空间满、无法安装更新、GRUB菜单臃肿甚至启动失败”等紧急问题,必须精准识别并移除非当前运行的旧内核版本。
确认当前运行内核与已安装内核列表
第一步:打开终端(Ctrl+Alt+T),执行 uname -r 查看正在使用的内核版本,例如输出 5.15.0-48-generic——这台机器当前只能保留该版本及最多一个历史版本,其余全部视为可清理对象。
第二步:执行 dpkg --list | grep 'linux-image-' | awk '{print $2}' 列出所有已安装的内核镜像包,注意包名格式如 linux-image-5.15.0-45-generic、linux-image-5.15.0-48-generic;若系统基于YUM(如Kylin V10 Server版),则改用 rpm -q kernel 命令。
第三步:比对两个结果,圈出所有不等于 uname -r 输出值的内核包——这些就是待卸载目标。【绝不可卸载当前运行内核对应的包,否则系统将无法重启】。
用apt purge安全卸载旧内核(推荐首选)
方法一:适用于通过APT正常安装、依赖关系完整的内核包。
执行 sudo apt purge linux-image-5.15.0-45-generic linux-headers-5.15.0-45-generic,把上一步圈出的旧版本包名依次填入(多个包用空格分隔)。
执行 sudo update-grub 刷新GRUB引导菜单,确保旧条目消失且默认启动项仍指向当前内核。
这一步操作起来很简单,直接把包名粘贴进去回车就行。但要注意:如果某旧内核包状态异常(如显示 rc 而非 ii),说明它已被卸载但配置残留,此时需跳过此方法,改用后续手动清理。
手动删除/boot中残留文件(当apt失效时)
当apt purge报错、提示依赖冲突或根本查不到对应包名时,说明文件已脱离包管理器控制,必须进入/boot目录直删。
① 执行 ls /boot/vmlinuz* 和 ls /boot/initrd.img*,列出所有内核镜像与初始化内存盘文件。
② 执行 ls /boot/config-* /boot/System.map-* /boot/symvers-*,补全关联文件清单。
③ 逐行比对文件名中的版本号(如 -5.15.0-45-generic)与 uname -r 结果,只保留当前版本及一个历史版本的全部文件,其余全部标记为待删。
④ 执行 sudo rm /boot/vmlinuz-5.15.0-45-generic /boot/initrd.img-5.15.0-45-generic /boot/config-5.15.0-45-generic /boot/System.map-5.15.0-45-generic /boot/symvers-5.15.0-45-generic.gz——一次性删干净一个旧版本的所有核心文件。











