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