清理Ubuntu冗余内核的脚本

用过Ubuntu的都知道Ubuntu会定期更新系统,升级系统内核,导致开机启动菜单出现多个内核版本,这样不但看起来不清爽,而且冗余内核还占着磁盘空间构成浪费,需要用户去手动删除这些没用的旧内核。

删除的时候需要记几个命令,还要一个一个去对应内核版本,比较麻烦,而一旦一个不小心,删除掉了当前系统内核,麻烦就更大了,所以我们希望用一个脚本来实现这些功能,避免不必要的麻烦。

清理Ubuntu冗余内核的脚本_第1张图片
ubuntu-core.jpg

在提供脚本前,先看几个手动删除时需要的命令:

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

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

原文地址:http://xuhehuan.com/2213.html

你可能感兴趣的:(清理Ubuntu冗余内核的脚本)