Clean-up old kernels in Fedora
Lars Jönsson 2022-09-22
Information about how to free up space on the boot partition in Fedora.
Clean-Up Old Kernels
After you boot into the latest kernel and test the system you can remove previous kernels. Old kernels remain even after dnf autoremove to avoid unintentional removals.
One of the easier ways to remove old kernels is with a script that retains the latest kernel. The script below works whenever Fedora updates a kernel, and does not depend upon a system upgrade.
#!/usr/bin/env bash
old_kernels=($(dnf repoquery --installonly --latest-limit=-1 -q))
if [ "${#old_kernels[@]}" -eq 0 ]; then
echo "No old kernels found"
exit 0
fi
if ! dnf remove "${old_kernels[@]}"; then
echo "Failed to remove old kernels"
exit 1
fi
echo "Removed old kernels"
exit 0
Info in the Fedora documentation
Change the old kernels limit
To prevent that the boot partition runs out of space, the limit for
number of old kernels to save can be changed. The variable
installonly_limit
in /etc/dnf/dnf.conf
specifies the number of
kernels to retain on updates.
With the following setting, the system will remove all but the two latest kernels automatically on updates.
[main]
gpgcheck=True
installonly_limit=2
clean_requirements_on_remove=True
...