Ubuntu清理旧内核版本的步骤与注意事项
确认当前正在使用的内核版本
运行以下命令,获取系统当前加载的内核版本(此版本绝对不能删除):
uname -r
示例输出:5.15.0-78-generic
查看已安装的所有内核包
使用以下命令列出系统中已安装的内核相关包(包括镜像、头文件、模块):
dpkg --list | grep -E 'linux-image|linux-headers|linux-modules' | awk '{print $2}'
输出示例:
linux-image-5.15.0-78-generic
linux-image-5.15.0-76-generic
linux-headers-5.15.0-78-generic
linux-headers-5.15.0-76-generic
Ubuntu的apt
工具提供了自动识别并删除未使用旧内核的功能,无需手动指定版本:
sudo apt update && sudo apt autoremove --purge
该命令会自动保留最新的1-2个内核(系统默认策略),删除其余旧内核及关联的配置文件、依赖包。
若需手动选择删除的旧内核,可按以下步骤操作:
<版本号>
为要删除的内核版本(如5.15.0-76-generic
),注意要连带删除对应的头文件和模块:sudo apt purge linux-image-<版本号>-generic linux-headers-<版本号>* linux-modules-<版本号>*
示例(删除5.15.0-76-generic
内核):sudo apt purge linux-image-5.15.0-76-generic linux-headers-5.15.0-76* linux-modules-5.15.0-76*
kernel_clean.sh
),内容如下:#!/bin/bash
current_kernel=$(uname -r)
sudo apt purge $(dpkg --list | grep -E 'linux-image|linux-headers|linux-modules' | awk '{print $2}' | grep -v "$current_kernel" | grep -v "linux-image-generic" | grep -v "linux-headers-generic")
sudo apt autoremove --purge -y
赋予执行权限并运行:chmod +x kernel_clean.sh
sudo ./kernel_clean.sh
Ubuntu提供了purge-old-kernels
脚本,可快速保留指定数量的旧内核(默认保留2个),删除其余:
sudo apt install byobu # 安装byobu工具(包含purge-old-kernels脚本)
sudo purge-old-kernels --keep 2 # 保留2个旧内核,可根据需求调整数字
更新GRUB引导配置
删除旧内核后,需更新GRUB以确保系统能正常引导至保留的内核:
sudo update-grub
清理残留配置文件
若存在孤立的配置文件(如已删除内核的配置残留),可使用以下命令彻底清理:
sudo dpkg --purge $(dpkg -l | awk '/^rc/ {print $2}')
验证清理结果
dpkg --list | grep -E 'linux-image|linux-headers'
/boot
分区空间(确认空间是否释放):df -h /boot
/boot
分区空间不足(使用率超过90%),需先清理旧内核才能正常更新系统。