用过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
根据脚本提示就可以清除掉冗余的内核,执行完成,重新系统后,可以看到在启动菜单中只剩一个内核版本了。