查找無(wú)用的鏡像
使用Ubuntu一段時(shí)間后,就會(huì)發(fā)覺(jué)由于自動(dòng)升級(jí),系統(tǒng)里安裝了很多內(nèi)核。始終用不到的舊內(nèi)核有必要清理一下,以節(jié)省啟動(dòng)時(shí)間和硬盤(pán)空間。
首先可查看當(dāng)前用的內(nèi)核是哪個(gè),可通過(guò)命令:uname -a 來(lái)獲得信息。例如我臺(tái)式機(jī)上顯示為:
magc@magc-desktop:~$ uname -a
Linux magc-desktop 2.6.24-19-rt #1 SMP PREEMPT RT Thu Aug 21 02:08:03 UTC 2008 i686 GNU/Linux
然后通過(guò)查看本機(jī)上所有內(nèi)核的列表來(lái)決定哪些需要?jiǎng)h除掉:
運(yùn)行命令:
dpkg --get-selections|grep linux
例如我本機(jī)顯示為:
magc@magc-desktop:~$ dpkg --get-selections|grep linux
libselinux1 install
linux-generic install
linux-headers-2.6.24-19 install
linux-headers-2.6.24-19-generic install
linux-headers-2.6.24-19-rt install
linux-headers-2.6.24-21 install
linux-headers-2.6.24-21-generic install
linux-headers-2.6.24-21-rt install
linux-headers-generic install
linux-headers-rt install
linux-image-2.6.24-19-generic deinstall
linux-image-2.6.24-19-rt install
linux-image-2.6.24-21-generic install
linux-image-generic install
linux-image-rt install
linux-restricted-modules-2.6.24-19-generic deinstall
linux-restricted-modules-2.6.24-19-rt install
linux-restricted-modules-2.6.24-21-generic install
linux-restricted-modules-common install
linux-restricted-modules-generic install
linux-restricted-modules-rt install
linux-rt install
linux-sound-base install
linux-ubuntu-modules-2.6.24-19-generic deinstall
linux-ubuntu-modules-2.6.24-19-rt install
linux-ubuntu-modules-2.6.24-21-generic install
util-linux install
util-linux-locales install
其中帶有image的就是內(nèi)核文件,因此可看出我的機(jī)器上共五個(gè)內(nèi)核版本。我當(dāng)前使用的是2.6.24-19-rt,所以決定將其它沒(méi)用的內(nèi)核刪除。
如何清理舊內(nèi)核鏡像
在刪除舊內(nèi)核之前,記住最好留有2個(gè)最近的內(nèi)核(最新的和上一個(gè)版本),以防主要的版本出錯(cuò)?,F(xiàn)在就讓我們看看如何在Ubuntu上清理舊內(nèi)核。
在Ubuntu內(nèi)核鏡像包含了以下的包。
linux-image-: 內(nèi)核鏡像
linux-image-extra-: 額外的內(nèi)核模塊
linux-headers-: 內(nèi)核頭文件
首先檢查系統(tǒng)中安裝的內(nèi)核鏡像。
$ dpkg --list | grep linux-image
$ dpkg --list | grep linux-headers
在列出的內(nèi)核鏡像中,你可以移除一個(gè)特定的版本(比如3.19.0-15)。
$ sudo apt-get purge linux-image-3.19.0-15
$ sudo apt-get purge linux-headers-3.19.0-15
上面的命令會(huì)刪除內(nèi)核鏡像和它相關(guān)聯(lián)的內(nèi)核模塊和頭文件。
注意如果你還沒(méi)有升級(jí)內(nèi)核那么刪除舊內(nèi)核會(huì)自動(dòng)觸發(fā)安裝新內(nèi)核。這樣在刪除舊內(nèi)核之后,GRUB配置會(huì)自動(dòng)升級(jí)來(lái)移除GRUB菜單中相關(guān)GRUB入口。
如果你有很多沒(méi)用的內(nèi)核,你可以用shell表達(dá)式來(lái)一次性地刪除多個(gè)內(nèi)核。注意這個(gè)括號(hào)表達(dá)式只在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}
面的命令會(huì)刪除4個(gè)內(nèi)核鏡像:3.19.0-18、3.19.0-20、3.19.0-21 和 3.19.0-25。
如果GRUB配置由于任何原因在刪除舊內(nèi)核后沒(méi)有正確升級(jí),你可以嘗試手動(dòng)用update-grub2命令來(lái)更新配置。
$ sudo update-grub2
現(xiàn)在就重啟來(lái)驗(yàn)證GRUB菜單是否已經(jīng)正確清理了。