用过 Ubuntu 的都知道 Ubuntu 会定期更新系统,升级系统内核,导致开机启动菜单出现多个内核版本,这样不但看起来不清爽,而且冗余内核还占着磁盘空间构成浪费,需要用户去手动删除这些没用的旧内核。
删除的时候需要记几个命令,还要一个一个去对应内核版本,比较麻烦,而一旦一个不小心,删除掉了当前系统内核,麻烦就更大了,所以我们希望用一个脚本来实现这些功能,避免不必要的麻烦。
在提供脚本前,先看几个手动删除时需要的命令:
1、查看当前系统中的内核——查看当前系统中存在哪些内核版本
dpkg --get-selections | grep "linux-image"
2、查看当前系统的版本——查看当前系统的版本号以免误删系统
uname -r
3、删除冗余的内核版本——删除非当前内核的其它的内核版本
sudo apt-get remove --purge linux-image-**********
最后再使用sudo apt-get autoremove
命令删除 /usr/src 下的源码及头文件目录,使用sudo apt-get autoclean
自动清理系统。
主要命令介绍完了,再看这个脚本就很清楚了。
#!/bin/bash CurCore="linux-image-`uname -r`" CurCoreExtra="linux-image-extra-`uname -r`" echo "清理无用的内核" echo "当前内核是:$CurCore" for i in `dpkg --get-selections|grep linux-image` do if [ "$i" != "install" ] && [ "$i" != "$CurCore" ] && [ "$i" != "$CurCoreExtra" ] && [ "$i" != 'linux-image-generic' ];then echo "删除无用的内核:$i" sudo apt-get remove --purge $i fi done echo "更新启动菜单" sudo update-grub sudo apt-get autoremove sudo apt-get autoclean
将该脚本保存为 autoclean.sh,然后打开终端定位到文件所在目录使这个文件可执行:
chmod +x autoclean.sh
最后执行脚本:
./autoclean.sh
或sh autoclean.sh
根据脚本提示就可以清除掉冗余的内核,执行完成,重新系统后,可以看到在启动菜单中只剩一个内核版本了。
欢迎转载,转载请注明出处:蔓草札记 » 清理 Ubuntu 冗余内核的脚本