用過Ubuntu的都知道Ubuntu會定期更新系統,升級系統內核,導致開機啟動菜單出現多個內核版本,這樣不但看起來不清爽,而且冗余內核還占著磁盤空間構成浪費,需要用戶去手動刪除這些沒用的舊內核。
刪除的時候需要記幾個命令,還要一個一個去對應內核版本,比較麻煩,而一旦一個不小心,刪除掉了當前系統內核,麻煩就更大了,所以我們希望用一個腳本來實現這些功能,避免不必要的麻煩。
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
根據腳本提示就可以清除掉冗余的內核,執行完成,重新系統后,可以看到在啟動菜單中只剩一個內核版本了。