删除旧内核

发布于

因为用了 ubuntu utopic 的测试源,所以内核更新的很频繁,久了之后不会自己删除,于是成了一大堆。

乱翻文件夹是看到 /usr/src/ 里边,可以看到很多和内核相关的文件夹,虽然能够手动删除,但是这样以来并不是完全卸载了。使用下面的命令行列出系统里边的 linux 相关的包,

dpkg --get-selections | grep linux

理解起来应该是 搜索名称中带 “linux” 的软件包(dpkg),注意不是 Linux,grep(通用正则表达式解析器)这个区分大小写。

linux

看到之前被手工删除掉了的文件夹,在这里显示 deinstall ,明明是删除了的意思,但出现在这里还是很碍眼 呐

uname -a 命令,可以查看当前使用中的的内核,一般选择当前使用的之前的版本就可以了。

例如:

apt-get purge \
linux-image-3.16.0-9-generic \
linux-image-3.13.0-32-generic \
linux-signed-image-3.16.0-9-generic \
linux-signed-image-3.13.0-32-generic \
linux-image-extra-3.16.0-9-generic \
linux-image-extra-3.13.0-32-generic
因为如果只是用 apt-get remove 的话,只是直接卸载,而用 apt-get purge 则是连带配置文件一起清除。心理感觉便好过许多。

移除了之后手工执行 update-grub 生成 grub 配置文件更佳(前提是使用当前系统的 grub 引导),虽然一般都是自动生成的。

Fedora

echo '清理旧内核'
old_kernels=($(dnf repoquery --installonly --latest-limit=-1 -q))
if [ "${#old_kernels[@]}" -eq 0 ]; then
    echo "No old kernels found"
    # exit 1
fi

if ! dnf remove "${old_kernels[@]}" -y; then
    echo "Failed to remove old kernels"
    # exit 1
fi