银河麒麟系统清理旧内核首选apt purge:先用uname -r确认当前运行内核(不可删),再用dpkg --list筛选旧版本,执行sudo apt purge卸载指定旧内核及配套模块包,最后sudo update-grub同步更新引导菜单;仅当apt失败时才手动删除/boot中对应vmlinuz、initrd.img等文件,并再次update-grub验证。

银河麒麟系统长期运行后,/boot分区容易被旧内核文件占满,导致无法安装更新、升级失败或GRUB引导菜单臃肿混乱,必须安全删除多余内核以释放空间并精简启动项。
用apt purge批量卸载旧内核(推荐首选)
这一步操作起来很简单,直接在终端执行命令即可,适用于所有通过软件包管理器安装的内核,能自动清理对应vmlinuz、initrd.img、config等全部关联文件,并同步更新GRUB菜单。
第一步:打开终端,执行uname -r确认当前正在运行的内核版本,例如输出5.4.0-110-generic,该版本【绝对不可删除】。
第二步:执行dpkg --list | grep 'linux-image-[0-9]' | awk '{print $2}'列出所有已安装的内核镜像包,注意筛选出版本号低于当前版本且非最新两版的旧包——比如当前是110,已装有105、102、98,则优先保留105和110,准备清理102及更早的。
第三步:执行sudo apt purge linux-image-102-generic linux-image-extra-102-generic(将102替换为实际待删版本),命令会同时移除内核镜像与配套模块包。
第四步:执行sudo update-grub刷新引导配置。若未执行此步,旧内核仍会显示在开机菜单中,且可能引发启动异常。
手动清理/boot中残留文件(仅当apt失败时使用)
当apt purge报错(如依赖损坏、包状态异常或内核为手动编译安装)时,才进入此流程。手动操作风险高,必须逐项核对版本,误删当前内核会导致系统无法启动。
方法一:定位待删文件
执行ls /boot/vmlinuz* /boot/initrd.img*,将输出结果与uname -r比对,只保留当前版本及最多一个历史版本对应的文件;其余版本的vmlinuz-xxx、initrd.img-xxx均属可删范围。
方法二:严格删除关联项
对确认废弃的版本(如5.4.0-98-generic),依次执行以下命令:
sudo rm /boot/vmlinuz-5.4.0-98-generic
sudo rm /boot/initrd.img-5.4.0-98-generic
sudo rm /boot/config-5.4.0-98-generic /boot/System.map-5.4.0-98-generic /boot/abi-5.4.0-98-generic /boot/retpoline-5.4.0-98-generic
注意:/boot目录下还可能存在grub子目录中的旧主题或字体文件,但这些不随内核版本变化,无需清理;只处理明确带版本号的内核相关文件。
方法三:强制同步GRUB
执行sudo update-grub。这一步不可跳过,否则已删文件仍会出现在引导菜单里,且GRUB可能因找不到对应文件而报错。
验证清理结果
执行df -h /boot查看/boot分区剩余空间,正常应提升200MB以上;再执行grep menuentry /boot/grub/grub.cfg | grep -i linux,输出行数应等于你保留的内核数量(通常为2行)。
重启系统,在GRUB界面观察启动项是否已精简,且能正常进入桌面。











