Ubuntu系统删除旧内核的安全操作流程
在终端执行以下命令,获取系统当前运行的内核版本(务必保留此版本,禁止删除):
uname -r
示例输出:5.15.0-82-generic(此版本为当前系统内核,不可删除)。
使用以下命令查看系统中已安装的所有内核相关包(包括内核主体、头文件、模块等):
dpkg --list | grep -E 'linux-image|linux-headers|linux-modules'
或更简洁的过滤方式:
dpkg list | grep E 'linux-image|linux-headers|linux-modules'
输出示例:
ii linux-image-5.15.0-78-generic 5.15.0-78.85~20.04.1 amd64 Signed kernel image generic
ii linux-image-5.15.0-82-generic 5.15.0-82.91~20.04.1 amd64 Signed kernel image generic
ii linux-headers-5.15.0-82-generic 5.15.0-82.91~20.04.1 amd64 Linux kernel headers for version 5.15.0 on 64 bit x86 SMP
记录需要保留的版本(当前运行的内核+1-2个备用版本),其余为可删除的旧内核。
apt autoremove --purge自动清理Ubuntu默认配置会保留最新2个内核版本,执行以下命令可自动卸载所有未使用的旧内核及其关联包(如头文件、模块),并彻底删除配置文件:
sudo apt autoremove --purge
此方法为最安全、最便捷的选择,适合大多数用户。
若需精确控制保留的版本数量,可手动删除旧内核。例如,删除5.15.0-78-generic内核及相关组件:
sudo apt purge linux-image-5.15.0-78-generic linux-headers-5.15.0-78* linux-modules-5.15.0-78*
注意:替换命令中的版本号为实际要删除的旧内核版本,不要包含当前运行的内核。
删除旧内核后,需更新GRUB以移除无效的启动项,确保系统启动时仅显示当前及保留的内核:
sudo update-grub
可通过以下命令验证GRUB菜单是否已更新(仅显示当前及保留的内核):
grep 'menuentry' /boot/grub/grub.cfg
若卸载后仍存在残留的配置文件,可使用以下命令彻底清理:
sudo dpkg --purge $(dpkg -l | awk '/^rc/ {print $2}')
此命令会删除所有标记为“rc”(残留配置)的内核相关包。
为避免旧内核频繁堆积,可调整APT配置:
/etc/apt/apt.conf.d/01autoremove文件,添加以下内容(保留最近2个内核):APT::Autoremove::KernelLimit "2";
/etc/apt/apt.conf.d/00recommends文件,添加以下内容(减少无关内核组件被标记为依赖):APT::InstallRecommends "false";
APT::InstallSuggests "false";