如何在Ubuntu Linux上釋放/boot分區(qū)的空間?
前幾天,我收到一個(gè)警告,/boot
分區(qū)已經(jīng)幾乎滿了,沒有剩余空間了。是的,我有一個(gè)獨(dú)立的 /boot
分區(qū),我相信現(xiàn)在很少有人這樣做了。(LCTT 譯注:個(gè)人認(rèn)為保留單獨(dú)的 /boot 分區(qū)是個(gè)好的運(yùn)維經(jīng)驗(yàn),除此以外,/tmp、/var 也單獨(dú)劃定分區(qū)比較好。)
這是我第一次看到這樣一個(gè)錯(cuò)誤,它讓我很迷惑。現(xiàn)在,這里有一些 方法來釋放在 Ubuntu (或基于 Ubuntu 的分區(qū))上的分區(qū) ,但是在這種情況下并不是所有的方法都能用。
這就是為什么我決定寫這些我釋放 /boot
分區(qū)空間的步驟的原因。
如何在 Ubuntu 上釋放 /boot 分區(qū)的空間
我建議你仔細(xì)閱讀這些解決方案,并由此得出最適合你情況的解決方案。解決方案的操作很容易,但是你需要在你的生產(chǎn)力系統(tǒng)上小心的執(zhí)行這些解決方案。
方法 1: 使用 apt autoremove
你不必是一名終端專家來做這件事,它只需要一個(gè)命令,你將移除未使用的內(nèi)核來釋放 /boot
分區(qū)中是空間。
你所有要做的事情是,輸入:
sudo apt autoremove
這個(gè)命令不僅僅可以移除未使用的內(nèi)核,而且也將移除你不需要的或工具安裝后所不需要的依賴項(xiàng)。
在你輸入命令后,它將列出將被移除的東西,你只需要確認(rèn)操作即可。如果你很好奇它將移除什么,你可以仔細(xì)檢查一下看看它實(shí)際移除了什么。
這里是它應(yīng)該看起來的樣子:
你必須按 Y
按鍵來繼續(xù)。
值得注意的是,這種方法只在你還剩余一點(diǎn)點(diǎn)空間,并且得到警告的情況下才有效。但是,如果你的 /boot
分區(qū)已經(jīng)滿了,APT 甚至可能不會(huì)工作。
在接下來的方法中,我將重點(diǎn)介紹兩種不同的方法,通過這些方法你可以使用 GUI 和終端來移除舊內(nèi)核來釋放空間。
方法 2: 手動(dòng)移除未使用的內(nèi)核
在你嘗試 移除一些舊內(nèi)核 來釋放空間前,你需要識(shí)別當(dāng)前活動(dòng)的內(nèi)核,并且確保你不會(huì)刪除它。
為 檢查你的內(nèi)核的版本 ,在終端中輸入下面的命令:
uname -r
uname 命令通常用于獲取 Linux 系統(tǒng)信息。在這里,這個(gè)命令顯示當(dāng)前正在被使用的 Linux 內(nèi)核。它看起來應(yīng)該是這樣:
現(xiàn)在,你已經(jīng)知道你當(dāng)前的 Linux 內(nèi)核是什么,你必須移除一個(gè)不同于這個(gè)版本的內(nèi)核。你應(yīng)該把它記錄在某些地方,以便你不會(huì)不知不覺地移除它。
接下來,要移除它,你可以使用終端或 GUI。
警告!
在刪除內(nèi)核時(shí)一定要額外的小心。只識(shí)別和刪除舊內(nèi)核,而不是當(dāng)前你正在使用的內(nèi)核,否則你將會(huì)擁有一個(gè)殘缺的系統(tǒng)。
使用一個(gè) GUI 工具來移除舊的 Linux 內(nèi)核
你可以使用 Synaptic 軟件包管理器 或一個(gè)類似 Stacer 的工具來開始。就我個(gè)人而言,當(dāng)我遇到一個(gè)滿滿的 /boot
分區(qū)且 APT 損壞時(shí),我使用 Stacer 來丟棄舊內(nèi)核。因此,讓我向你展示一下它看起的樣子。
首先,你需要啟動(dòng) Stacer ,然后導(dǎo)航到軟件包卸載器,如下面屏幕截圖所示。
在這里,搜索 “image” ,你將找到你所擁有的 Linux 內(nèi)核。你只需要?jiǎng)h除舊內(nèi)核版本的鏡像,而不是當(dāng)前內(nèi)核的鏡像。
在上面的屏幕截圖中,我已經(jīng)指出了我系統(tǒng)上的當(dāng)前內(nèi)核和舊內(nèi)核,因此你必須注意你系統(tǒng)上的內(nèi)核。
你沒有必要?jiǎng)h除任何其它東西,只需要?jiǎng)h除舊的內(nèi)核版本。
同樣的,只需要在軟件包列表中搜索 “headers” ,并刪除如下顯示的舊的 “headers” 版本。
作為提醒,你 不會(huì)希望移除 linux-headers-generic
。只關(guān)注一下那些與其相關(guān)的有版本號(hào)的就行。
然后,就這樣,你完成了所有的工作,APT 將會(huì)再次工作,并且你將成功地釋放來自 /boot
分區(qū)的一些空間。同樣地,你也可以使用任意其它的軟件包管理器來完成這些工作。
使用命令行來移除舊內(nèi)核
使用命令行來移除舊內(nèi)核與使用 GUI 來移除舊內(nèi)核是一樣的。因此,如果你沒有選擇使用 GUI 軟件(如果它是一臺(tái)遠(yuǎn)程機(jī)器/一項(xiàng)遠(yuǎn)程服務(wù))的權(quán)利,或者如果你只是對(duì)終端情有獨(dú)鐘,你可以仿效下面的步驟。
首先,使用下面的命令列出所有已安裝的內(nèi)核:
ls -l /boot
它應(yīng)該看起來像這樣:
標(biāo)記為 “old” 的內(nèi)核,或者不匹配你當(dāng)前內(nèi)核版本,都是未使用的內(nèi)核,你可以刪除它們。
現(xiàn)在,你可以使用 rm
命令來移除具體指定來自 /boot
分區(qū)中的內(nèi)核,使用下面的命令(一個(gè)命令對(duì)應(yīng)一個(gè)內(nèi)核):
sudo rm /boot/vmlinuz-5.4.0-7634-generic
務(wù)必檢查系統(tǒng)的版本 — 這里可能與你的系統(tǒng)的版本不同。
如果你有很多未使用的內(nèi)核,這將需要一些時(shí)間。因此,你也可以下面的命令丟棄多個(gè)內(nèi)核:
sudo rm /boot/*-5.4.0-{7634}-*
為了清晰起見,你需要用逗號(hào)分隔內(nèi)核版本號(hào)的最后一部分/編碼,以便同時(shí)刪除它們。
假設(shè),我有兩個(gè)舊的內(nèi)核 5.4.0-7634-generic 和 5.4.0-7624 ,那么命令將是:
sudo rm /boot/*-5.4.0-{7634,7624}-*
如果你不希望在 grub 啟動(dòng)菜單中再看到這些舊的內(nèi)核版本,你可以使用下面的命令簡(jiǎn)單地 更新 grub:
sudo update-grub
就這樣,你完成了所有的工作。你已經(jīng)釋放了空間,還修復(fù)了可能潛在的破損的 APT 問題,如果它是一個(gè)在你的 /boot
分區(qū)填滿后出現(xiàn)的重要的問題的話。
在一些情況下,你需要輸入這些命令來修復(fù)破損的(正如我在論壇中注意到的):
sudo dpkg --configure -a
sudo apt install -f
注意,除非你發(fā)現(xiàn) APT 已破損,否則你不需要輸入上面的命令。就我個(gè)人而言,我不需要這些命令,但是我發(fā)現(xiàn)這些命令對(duì)論壇上的一些人很有用。