如何調整和縮小 BTRFS 分割區的大小?

如何調整和縮小 BTRFS 分割區的大小?

我有/home一個BTRFS分區,我需要縮小它。

不幸的是,Gparted這個 FS 沒有調整大小選項。

我可以透過其他方式調整其大小而不丟失資料嗎?

答案1

根據這一頁在裡面維基百科:

將檔案系統縮小 4 GiB:btrfs filesystem resize -4g /mntbtrfsctl -r -4g /mnt設定 FS 大小。若要將檔案系統設定為特定大小,請省略大小中前導的 + 或 - 。

Ubuntu 中的和指令由名為 的軟體包提供,您可以在軟體中心安裝軟體套件btrfs。您可以在終端機 (Ctrl+Alt+T) 中執行這些命令。替換為您真正想要縮小分割區的數量以及分割區的安裝點。例如,要將安裝在 /media/Alpha 的 btrfs 分割區縮小 500 MiB,您可以執行:btrfsctlbtrfs-utils4g/mnt

btrfs filesystem resize -500m /media/Alpha

或者:

btrfsctl -r -500m /media/Alpha

假設調整 btrfs 檔案系統大小的準則與其他檔案系統相同,則應避免調整與正在執行的系統位於相同實體磁碟上的分割區大小。因此,如有必要,請從即時系統啟動,以調整安裝了 Ubuntu 系統的磁碟機上的分割區大小。 (這也適用於在 GParted 中完成的大小調整。)

如果某些實用程式或應用程式在執行調整大小操作時看不到結果,則重新啟動是個好主意。

請參閱btrfsbtrfsctl 手冊頁有關使用這些命令的更多詳細資訊。並希望維基百科很快就會恢復。

我個人對 btrfs 檔案系統不是很熟悉,但對我來說,這些調整大小命令採用檔案系統的掛載點而不是裝置名稱似乎很奇怪。如果有人可以解釋這一點,請發表評論或隨時編輯此答案以改進它。

答案2

根據GParted 功能頁面,支持btrfs收縮。如果該選項不可用,安裝 btrfs-tools 套件可能會修復它。如果這不起作用,可能是因為 Ubuntu 包含舊版本的 GParted,在這種情況下您可以使用 GParted Live CD:

http://gparted.sourceforge.net/livecd.php

(這也是如何Ubuntu推薦無論如何都使用它)

答案3

這不是問題的直接答案,而是針對透過谷歌搜尋到達這裡的人,想知道你是否可以在線收縮/- 是的,你可以

我需要更多交換,而 btrfs 不允許從文件運行交換,因此我必須縮小 / 並重新建立分區(小心)。這是我所做的,記住我想要額外的 64G 交換空間:

sudo btrfs filesystem resize -96g /
sudo fdisk /dev/nvme0n1

我有 2 個分區,1 個用於 /,另一個用於交換。刪除兩者,然後重新創建(在重新啟動之前!)。分割區 1 的舊大小為 867.5G,新大小為 803.5,為交換分割區提供了額外的 64G。當它詢問您是否要覆蓋 btrfs 簽名時,請說“不”!如果您像我一樣進行交換,則需要在建立時或之後使用“t”命令將交換分割區的“類型”變更為“82”

重新啟動後,我跑了

sudo btrfs filesystem resize max /

df -h然後報告:

/dev/nvme0n1p1  804G  498G  305G  63% /

所以,我最初將檔案系統縮小 96G 的原因是因為不同的工具計算 G 和 M 略有不同,所以這是為了超級確保檔案系統不會因為新分割區比其上的檔案系統稍小而被破壞!

重新啟動後,如果您變更了交換分割區,您還需要在其上執行 mkswap,例如sudo mkswap /dev/nvme0n1p2「交換」或再次重新啟動

這可能應該放在答案的頂部,但不用說,您運行一組上述命令需要您自擔風險,並且您應該確保備份所有重要文件,以防出現問題而丟失整個文件文件系統!我希望這可以幫助別人!

答案4

使用此命令在以下位置安裝btrfs支援GParted

sudo apt install btrfs-progs

之後,您可以輕鬆縮小分割區並調整分割區大小GParted。這樣你就可以在 GUI 中完成所有工作。無需命令列

相關內容