旧内核镜像是Ubuntu系统中占用/boot分区空间的主要原因之一,安全删除旧内核可释放大量空间。以下是具体操作:
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-76-generic
linux-image-5.15.0-78-generic
linux-headers-5.15.0-76-generic
linux-headers-5.15.0-78-generic
方法1:自动清理(推荐首选)
使用apt autoremove --purge命令自动删除所有未使用的旧内核(包括关联的头文件、模块),无需手动指定版本:
sudo apt autoremove --purge
此命令会保留当前正在使用的内核和linux-image-generic(内核元包,用于自动安装后续更新)。
方法2:手动指定删除(精确控制)
若需删除特定版本内核,可手动指定包名(替换为实际版本号):
sudo apt purge linux-image-5.15.0-76-generic linux-headers-5.15.0-76* linux-modules-5.15.0-76*
输入Y确认删除,完成后执行sudo apt autoremove --purge清理残留依赖。
方法3:批量清理脚本(高效批量处理)
创建脚本自动识别并删除旧内核(保留当前版本和通用元包):
cat << 'EOF' > 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
EOF
chmod +x kernel_clean.sh
sudo ./kernel_clean.sh
若删除旧内核后GRUB菜单未更新,手动刷新配置:
sudo update-grub2
dpkg --list | grep -E 'linux-image|linux-headers' # 查看剩余内核
df -h /boot # 检查/boot分区空间
若问题中的“镜像”指Docker镜像(如ubuntu:14.04),可通过以下命令删除:
docker images
ubuntu:14.04):docker rmi ubuntu:14.04
若镜像被容器依赖,需先删除容器(docker rm 容器ID)或强制删除(docker rmi -f ubuntu:14.04,不推荐)。docker image prune -a
linux-image-5.15.0-76-generic),避免当前内核损坏无法启动。linux-image-generic(内核元包)或linux-headers-generic(头文件元包),否则会影响后续内核更新。ubuntu:20.04),而非系统内核镜像。