This script is used to remove old kernels cluttering /boot on Ubuntu systems. The following kernels are preserved:
- The running kernel
- The latest kernel from each major version
#!/bin/bash | |
kernelversion=$(uname -r) | |
kernelminversion=${kernelversion%-*} | |
latestkernelversion=$(dpkg -l | awk '/linux-image-[0-9]/ {print $2}' | sort | tail -1 | grep -o '[0-9][0-9\.-]*[0-9]') | |
packages_to_remove=$(dpkg -l | awk '/linux-(image|headers)-[0-9]/ {print $2}' | egrep -v "${kernelminversion}|${latestkernelversion}") | |
[[ -z "${packages_to_remove}" ]] || dpkg -P ${packages_to_remove} |