必须执行sudo update-grub同步引导配置并手动清理/boot残留文件,因旧内核包卸载后grub菜单未更新或/boot中仍存在孤立vmlinuz/initrd.img等文件,需先确认当前内核(uname -r)、保留最新备用版本,再卸载冗余包、刷新grub、比对dpkg列表删除/boot中无对应包的残留文件。

统信UOS系统开机时GRUB菜单中反复出现已卸载内核的启动项,说明旧内核包虽被移除,但引导配置未同步更新或/boot目录下仍有残留文件,必须执行对应清理动作才能彻底消失。
确认当前运行内核并锁定保留版本
打开终端(Ctrl + Alt + T),执行uname -r,输出结果如【6.6.35-amd64-desktop】即为正在运行的内核,此版本绝对不可删;若输出含-edge或-rc字样,代表你正使用测试版内核,后续所有操作都必须将其纳入保留清单。
再执行dpkg --list | grep linux-image,观察列表中除当前版本外是否还有更高版本号的内核(例如6.8.0-amd64-desktop),该高版本建议一并保留作为备用,其余均为冗余项。
图形化方式一键卸载旧内核并同步引导项
点击屏幕左下角「开始菜单」→ 选择「控制中心」→ 左侧导航栏进入「软件管理」→ 「已安装软件」。
在右上角搜索框输入linux-image,回车后列出全部内核包;注意查看右侧“安装时间”列,仅勾选那些既不是uname -r输出结果、也非最新高版本的旧内核条目。
点击右下角「卸载」按钮,输入管理员密码确认执行;卸载完成后必须立即执行sudo update-grub,否则旧启动项仍会显示在开机菜单中。
终端命令批量清理非当前内核
第一步:打开终端,执行以下命令自动识别并卸载所有非当前内核:
sudo apt purge $(dpkg -l | awk '/^ii linux-image-[0-9]/ && !/$(uname -r)/ {print }') --yes
第二步:清除配套的 headers 包,避免残留依赖干扰后续升级:
sudo apt purge $(dpkg -l | awk '/^ii linux-headers-[0-9]/ && !/$(uname -r)/ {print $2}') --yes
第三步:强制刷新 GRUB 配置,彻底移除无效启动项:
sudo update-grub
执行完这三步后,重启系统,GRUB 菜单中将只保留当前内核及其 recovery 模式选项。
手动清理/boot分区残留文件
当图形化工具或 apt 命令卸载失败,或 df /boot 仍提示空间不足时,说明存在未被包管理器追踪的孤立文件,必须人工核对清理。
先查看 /boot 目录中实际存在的内核文件:ls -l /boot/vmlinuz-* /boot/initrd.img-*。
比对输出列表与 dpkg --list | grep linux-image 的结果,凡是在 /boot 中存在但 dpkg 列表里找不到对应包名的文件,均为残留,例如【vmlinuz-5.4.0-amd64】对应包已卸载却未删镜像,此时可安全执行:sudo rm -f /boot/vmlinuz-5.4.0-amd64 /boot/initrd.img-5.4.0-amd64。











