使用LVM擴(kuò)展卷空間
LVM 是一個(gè)邏輯卷管理工具,包括分配磁盤(pán)、條帶化、鏡像和調(diào)整邏輯卷的大小。它在 Fedora 安裝中被普遍使用(在 BTRFS 作為默認(rèn)文件系統(tǒng)之前是 LVM + Ext4)。但是你是否曾經(jīng)遇到過(guò)啟動(dòng)系統(tǒng)時(shí),GNOME 提示 home 卷幾乎沒(méi)有空間了!幸運(yùn)的是,很有可能有一些空間在另一個(gè)卷中,而未被使用,可以用于重新分配。下面就來(lái)看看如何用 LVM 回收硬盤(pán)空間。
在卷之間輕松重新分配空間的關(guān)鍵是邏輯卷管理器(LVM)。Fedora 32 及以前的系統(tǒng)默認(rèn)使用 LVM 來(lái)劃分磁盤(pán)空間。這種技術(shù)類(lèi)似于標(biāo)準(zhǔn)的硬盤(pán)分區(qū),但 LVM 更加靈活。LVM 不僅可以實(shí)現(xiàn)靈活的卷大小管理,還可以實(shí)現(xiàn)一些高級(jí)功能,比如讀寫(xiě)快照、在多個(gè)硬盤(pán)上進(jìn)行數(shù)據(jù)條帶化或鏡像、將高速硬盤(pán)作為慢速硬盤(pán)的緩存等等。所有這些高級(jí)選項(xiàng)可能會(huì)讓人有點(diǎn)不知所措,但調(diào)整卷的大小很簡(jiǎn)單的。
LVM 基礎(chǔ)
卷組(VG)作為 LVM 系統(tǒng)中的主要容器。默認(rèn)情況下,F(xiàn)edora 只定義了一個(gè)卷組,但你可以根據(jù)需要定義多個(gè)卷組。實(shí)際的硬盤(pán)和硬盤(pán)分區(qū)被添加到卷組中作為物理卷(PV)。物理卷會(huì)將可用的空間添加到卷組中。一個(gè)典型的 Fedora 安裝有一個(gè)格式化的啟動(dòng)分區(qū),其余的硬盤(pán)是一個(gè)配置為 LVM 物理卷的分區(qū)。
從這個(gè)可用空間池中,卷組分配了一個(gè)或多個(gè)邏輯卷(LV)。這些卷類(lèi)似于硬盤(pán)分區(qū),但沒(méi)有磁盤(pán)上連續(xù)空間的限制。LVM 的邏輯卷甚至可以跨越多個(gè)設(shè)備!就像硬盤(pán)分區(qū)一樣,邏輯卷有一個(gè)定義的大小,可以包含任何文件系統(tǒng),然后可以掛載到特定的目錄。
需要什么
在 gnome-disks 應(yīng)用中確認(rèn)系統(tǒng)使用 LVM ,并確保其他卷中有可用的空間。如果沒(méi)有可以從另一個(gè)卷中回收的空間,這個(gè)指南就沒(méi)有用。還需要一個(gè) Fedora 臨場(chǎng) CD/USB。任何需要收縮的文件系統(tǒng)都必須卸載。從臨場(chǎng)鏡像運(yùn)行,可以讓硬盤(pán)上的所有卷保持未掛載狀態(tài),甚至包括像 /
和 /home
這樣的重要目錄。
Use gnome-disks to verify free space
一句話警告
按照這個(gè)指南,應(yīng)該不會(huì)丟失任何數(shù)據(jù),但它確實(shí)會(huì)使用一些非常底層和強(qiáng)大的命令。一個(gè)錯(cuò)誤可能會(huì)破壞硬盤(pán)上的所有數(shù)據(jù)。所以要先備份磁盤(pán)上的所有數(shù)據(jù)!
調(diào)整 LVM 卷的大小
開(kāi)始時(shí),啟動(dòng) Fedora 臨場(chǎng)鏡像并在對(duì)話框中選擇 “Try Fedora”。接下來(lái),使用 “Run Command” 啟動(dòng) “blivet-gui” 應(yīng)用(按 Alt-F2
,輸入 blivet-gui
,然后按回車(chē))。選擇左側(cè) “LVM” 下的卷組。邏輯卷在右邊。
Explore logical volumes in blivet-gui
邏輯卷標(biāo)簽由卷組名稱(chēng)和邏輯卷名稱(chēng)組成。在本例中,卷組是 fedora_localhost-live
,分配了 home
、root
和 swap
邏輯卷。要找到完整的卷,選擇每一個(gè)卷,點(diǎn)擊“齒輪”圖標(biāo),然后選擇 “resize”。調(diào)整大小對(duì)話框中的滑塊表示卷的允許大小。左邊的最小值是文件系統(tǒng)中已經(jīng)使用的空間,所以這是最小可能的尺寸大?。ú粍h除數(shù)據(jù))。右邊的最大值是基于卷組中的最大可用空間。
Resize dialog in blivet-gui
灰色的 “resize” 選項(xiàng)意味著該卷已經(jīng)滿(mǎn)了,而且卷組中沒(méi)有可用空間。
現(xiàn)在可以更改大小了!查看所有的卷,就像上面的截圖那樣,找到一個(gè)有足夠空間的卷。并像上面的截圖那樣,在所有的卷中找到一個(gè)有大量額外空間的卷。向左移動(dòng)滑塊來(lái)設(shè)置新的大小。騰出足夠的空間對(duì)整個(gè)卷有用,但仍然要為未來(lái)的數(shù)據(jù)增長(zhǎng)留出足夠的空間。否則,這個(gè)卷將是下一個(gè)被填滿(mǎn)的卷。
點(diǎn)擊 “resize”,注意卷列表中出現(xiàn)了一個(gè)新項(xiàng)目:“free space”?,F(xiàn)在選擇這次要調(diào)整的卷,并將滑塊一直向右移動(dòng)。按 “resize” 鍵,并查看新改進(jìn)的卷的布局。然而,硬盤(pán)驅(qū)動(dòng)器上的任何東西現(xiàn)在都還沒(méi)有改變。點(diǎn)擊“勾選”選項(xiàng)將更改提交到磁盤(pán)。
Review changes in blivet-gui
查看更改的摘要,如果一切看起來(lái)都是正確的,點(diǎn)擊 “Ok” 繼續(xù)。等待 “blivet-gui” 完成?,F(xiàn)在重新啟動(dòng)回到 Fedora,可以使用之前被充滿(mǎn)的卷上的新空間了。
為未來(lái)計(jì)劃
要知道任何特定卷在未來(lái)需要多少空間是很困難的。與其立即分配所有可用的空閑空間,不如考慮在卷組中留出空閑空間。事實(shí)上,F(xiàn)edora Server 默認(rèn)在卷組中保留空間。當(dāng)一個(gè)卷處于在線和使用中時(shí),擴(kuò)展卷是可能的。不需要臨場(chǎng)鏡像或重啟。當(dāng)一個(gè)卷幾乎滿(mǎn)的時(shí)候,可以使用部分可用空間輕松擴(kuò)展卷并繼續(xù)工作。遺憾的是,默認(rèn)的磁盤(pán)管理器 gnome-disks 不支持 LVM 卷的大小調(diào)整,所以安裝 blivet-gui 作為圖形化管理工具。另外,還有一個(gè)簡(jiǎn)單的終端命令來(lái)擴(kuò)展卷:
lvresize -r -L +1G /dev/fedora_localhost-live/root
總結(jié)
用 LVM 回收硬盤(pán)空間只是 LVM 功能的表面。大多數(shù)人,特別是在桌面中,可能不需要更高級(jí)的功能。然而,當(dāng)需要的時(shí)候,LVM 就在那里,盡管它的實(shí)現(xiàn)可能會(huì)變得有點(diǎn)復(fù)雜。從 Fedora 33 開(kāi)始,BTRFS 是默認(rèn)的文件系統(tǒng),沒(méi)有 LVM。BTRFS 可以更容易管理,同時(shí)對(duì)于大多數(shù)常見(jiàn)的使用來(lái)說(shuō)也足夠靈活。查看最近 Fedora Magazine 關(guān)于 BTRFS 的文章了解更多。