前幾天,我收到警告,引導分(fēn)區(qū)幾乎已滿或沒有(yǒu)剩餘空間。是的,我有(yǒu)一個單獨的啓動分(fēn)區(qū),我相信現在沒有(yǒu)多(duō)少人這樣做。
這是我第一次看到這樣的錯誤,這讓我感到困惑。現在,有(yǒu)幾種方法可(kě)以釋放Ubuntu(或基于Ubuntu的發行版)上的空間,但是在這種情況下,并非所有(yǒu)方法都有(yǒu)用(yòng)。
這就是為(wèi)什麽我決定寫一些關于釋放/ boot分(fēn)區(qū)中(zhōng)的空間的步驟的原因。
我建議您仔細閱讀解決方案,并遵循最适合您情況的解決方案。這很(hěn)容易,但是您需要對在生産(chǎn)系統上執行其中(zhōng)一些操作(zuò)保持謹慎。
您無需成為(wèi)終端專家即可(kě)執行此操作(zuò),這隻是一個命令,并且您将删除未使用(yòng)的内核以釋放/ boot分(fēn)區(qū)中(zhōng)的空間。
您要做的就是輸入:
sudo apt autoremove
這不僅會删除未使用(yòng)的内核,還會擺脫您不需要或不需要的已安(ān)裝(zhuāng)任何工(gōng)具(jù)所依賴的依賴項。
輸入命令後,它将列出将要删除的内容,您隻需确認操作(zuò)即可(kě)。如果您好奇,可(kě)以仔細檢查一下,看看它實際上删除了什麽。
這是它的樣子:
您必須按Y才能(néng)繼續。
值得注意的是,該方法僅在您隻剩一點點空間并且收到警告時才有(yǒu)效。但是,如果/ boot分(fēn)區(qū)已滿,則APT可(kě)能(néng)甚至無法工(gōng)作(zuò)。
在下一個方法中(zhōng),我将重點介紹兩種不同的方式,您可(kě)以通過兩種方式使用(yòng)GUI和終端删除舊内核以釋放空間。
在嘗試删除任何較舊的内核以釋放空間之前,需要确定當前的活動内核,并确保不要删除該内核。
要檢查您的内核版本,請在終端中(zhōng)輸入以下命令:
uname -r
該uname命令通常用(yòng)來獲取Linux系統的信息。在這裏,此命令顯示當前使用(yòng)的Linux内核。它看起來應該像這樣:
現在,您知道當前的Linux内核是什麽,隻需删除與該版本不匹配的Linux内核即可(kě)。您應該在某處記下它,以确保不會意外删除它。
接下來,要删除它,您可(kě)以使用(yòng)終端或GUI。
警告!
删除内核時要格外小(xiǎo)心。僅識别和删除舊内核,而不是當前使用(yòng)的内核,否則您的系統将損壞。
您可(kě)以使用(yòng)Synaptic軟件包管理(lǐ)器或Stacer之類的工(gōng)具(jù)開始使用(yòng)。就個人而言,當我遇到一個完整的/ boot分(fēn)區(qū)且apt損壞時,我使用(yòng)Stacer擺脫了較舊的内核。所以,讓我向您展示一下。https://fdbe3af2b5f90e9ca80c9c343780675d.safeframe.googlesyndication.com/safeframe/1-0-37/html/container.html?upapi=true
首先,您需要啓動“ Stacer ”,然後導航到軟件包卸載程序,如下面的屏幕快照所示。
在這裏,搜索“ image ”,您将找到您擁有(yǒu)的Linux内核的圖像。您隻需要删除舊的内核版本,而不是當前的内核映像即可(kě)。
在上面的屏幕快照中(zhōng),我已經指出了當前的内核和舊的内核,因此您必須小(xiǎo)心系統上的内核版本。
您不必删除其他(tā)任何内容,而隻需删除較舊的内核版本。
同樣,隻需在軟件包列表中(zhōng)搜索“ header ”,然後删除舊的标題,如下所示。
隻是警告您,您不想删除“ linux-headers-generic”。隻關注那些帶有(yǒu)版本号的版本。
就是這樣,您将完成操作(zuò),并且apt将再次工(gōng)作(zuò),并且您已經成功從/ boot分(fēn)區(qū)中(zhōng)釋放了一些空間。同樣,您可(kě)以使用(yòng)其他(tā)任何熟悉的軟件包管理(lǐ)器來執行此操作(zuò)。
這是同一件事,隻是使用(yòng)終端。因此,如果您沒有(yǒu)使用(yòng)GUI的選項(如果它是遠(yuǎn)程計算機/服務(wù)器),或者您隻是對終端感到滿意,則可(kě)以按照以下步驟操作(zuò)。
首先,使用(yòng)以下命令列出所有(yǒu)已安(ān)裝(zhuāng)的内核:
ls -l /boot
它看起來應該像這樣:
提到的“舊”或與當前内核版本不匹配的是可(kě)以删除的未使用(yòng)的内核。
現在,您可(kě)以使用(yòng)rm命令,使用(yòng)以下命令(從單個命令中(zhōng)删除每個内核)從引導分(fēn)區(qū)中(zhōng)删除特定内核:
sudo rm /boot/vmlinuz-5.4.0-7634-generic
确保檢查系統的版本-您的系統可(kě)能(néng)有(yǒu)所不同。
如果您有(yǒu)很(hěn)多(duō)未使用(yòng)的内核,這将需要一些時間。因此,您還可(kě)以使用(yòng)以下命令擺脫多(duō)個内核:
sudo rm /boot/*-5.4.0-{7634}-*
為(wèi)了清楚起見,您需要編寫以逗号分(fēn)隔的内核版本的最後部分(fēn)/代碼,以一次将其全部删除。
假設我有(yǒu)兩個舊的内核5.4.0-7634-generic和5.4.0-7624,命令将是:
sudo rm /boot/*-5.4.0-{7634,7624}-*
如果您不想在grub引導菜單中(zhōng)看到舊的内核版本,則可(kě)以使用(yòng)以下命令簡單地更新(xīn)grub:
sudo update-grub
而已。你完成了。您已經釋放了空間,并且還可(kě)能(néng)解決了損壞的APT,如果在/ boot分(fēn)區(qū)填滿後出現問題的話。
在某些情況下,您可(kě)能(néng)需要輸入以下命令來修複損壞的apt(如我在論壇中(zhōng)所注意到的):
sudo dpkg --configure -a
sudo apt install -f
請注意,除非發現APT損壞,否則無需輸入上述命令。就個人而言,我不需要這些命令,但我在論壇上找到了它們非常方便。