如何刪除Ubuntu上不再使用的舊內核
提問:過去我已經在我的Ubuntu上升級了幾次內核。現在我想要刪除這些舊的內核鏡像來節省我的磁盤空間。如何用最簡單的方法刪除Ubuntu上先前版本的內核?
在Ubuntu上,有幾個方法來升級內核。在Ubuntu桌面中,軟件更新允許你每天檢查并更新到***的內核上。在Ubuntu服務器上,最為重要的安全更新項目之一就是 unattended-upgrades軟件包會自動更新內核。然而,你也可以手動用apt-get或者aptitude命令來更新。
隨著時間的流逝,持續的內核更新會在系統中積聚大量的不再使用的內核,浪費你的磁盤空間。每個內核鏡像和其相關聯的模塊/頭文件會占用200-400MB的磁盤空間,因此由不再使用的內核而浪費的磁盤空間會快速地增加。
GRUB管理器為每個舊內核都維護了一個GRUB入口,以備你想要使用它們。
作為磁盤清理的一部分,如果你不再使用這些,你可以考慮清理掉這些鏡像。
如何清理舊內核鏡像
在刪除舊內核之前,記住***留有2個最近的內核(***的和上一個版本),以防主要的版本出錯。現在就讓我們看看如何在Ubuntu上清理舊內核。
在Ubuntu內核鏡像包含了以下的包。
◆linux-image-:內核鏡像
◆linux-image-extra-:額外的內核模塊
◆linux-headers-:內核頭文件
首先檢查系統中安裝的內核鏡像。
$ dpkg --list | grep linux-image
$ dpkg --list | grep linux-headers
在列出的內核鏡像中,你可以移除一個特定的版本(比如3.19.0-15)。
$ sudo apt-get purge linux-image-3.19.0-15
$ sudo apt-get purge linux-headers-3.19.0-15
上面的命令會刪除內核鏡像和它相關聯的內核模塊和頭文件。
注意:如果你還沒有升級內核那么刪除舊內核會自動觸發安裝新內核。這樣在刪除舊內核之后,GRUB配置會自動升級來移除GRUB菜單中相關GRUB入口。
如果你有很多沒用的內核,你可以用shell表達式來一次性地刪除多個內核。注意這個括號表達式只在bash或者兼容的shell中才有效。
$ sudo apt-get purge linux-image-3.19.0-{18,20,21,25}
$ sudo apt-get purge linux-headers-3.19.0-{18,20,21,25}
上面的命令會刪除4個內核鏡像:3.19.0-18、3.19.0-20、3.19.0-21 和 3.19.0-25。
如果GRUB配置由于任何原因在刪除舊內核后沒有正確升級,你可以嘗試手動用update-grub2命令來更新配置。
$ sudo update-grub2
現在就重啟來驗證GRUB菜單是否已經正確清理了。