我可以將一個 XFS 分區與另一個 XFS 分區合併嗎?
我正在使用有 3 個分區的 SSD:
$ lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111.8G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 108G 0 part / └─sda3 8:3 0 3.8G 0 part /mnt
/dev/sda2
並被/dev/sda3
格式化為 XFS 。我不再需要了
/dev/sda3
,那裡沒有任何數據,我想將它與 /dev/sda2 合併。如果我必須取消分配,這不是一個大問題/dev/sda2
。但我有重要數據和安裝在/dev/sda2
.有沒有辦法將 /dev/sda3 與 /dev/sda2 合併,以使數據
/dev/sda2
保持不變?編輯:
在詢問之前,我已經以這種方式嘗試過 xfs_growfs:
# xfs_growfs /dev/sda2 meta-data=/dev/sda2 isize=512 agcount=4, agsize=7077888 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=0 data = bsize=4096 blocks=28311552, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=13824, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
它什麼也沒做。我也嘗試過刪除分區 3,然後
xfs_growfs
同時/
執行/dev/sda2
. 我重新啟動,看到可用空間是可用的,並且/dev/sda2
一如既往地是 108 GB。我沒有使用 LVM。
細節:
xfs_info -V xfs_info version 5.7.0
你:
$ cat /etc/os-release | head -n1 NAME="Arch Linux"
核心:
$ cat /proc/version Linux version 5.8.5-xanmod1-1-xanmod (makepkg@archlinux) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Wed, 02 Sep 2020 20:22:18 +0000
當然不可能合併;您在最後一段中描述的是正確的方法,加上我最初錯過的一個步驟:
umount /mnt
,完成sda3
使用fdisk
or刪除parted
,完成- 擴展分區
sda2
xfs_growfs /
使用.擴展文件系統第三步有點危險。如果您有系統備份,請繼續,否則使用
gparted
iso。在您的實時系統上,啟動fdisk /dev/sda
.p
列出分區。記下 sda2 的起始扇區和 id 類型。然後d
刪除它!接下來,創建一個新分區,從與之前完全相同的扇區開始,到磁碟的最後一個扇區結束。我想它可能會設置為相同的 id 和類型,83 Linux,但也請檢查一下。完成後p
,再次檢查新的 sda2 的起始扇區和 id 是否與舊的相同,w
q
。危險的部分是,如果你錯過了 start 或 id,分區數據將被破壞(不完全是,但你遇到了麻煩)。只是刪除分區改變了表,數據沒有被觸及。在那之後
xfs_growfs /
將擴展文件系統;如果不需要,核心可能需要partprobe
orpartx
命令來了解更改。或者你可以重新啟動。刪除分區來擴展它可能看起來很奇怪,但這是一個標準過程,你可以搜尋它。如果你想避免它,你可以在未來的系統上使用 LVM。
另一種方法是下載
gparted
make a boot usb/cd,從那裡啟動並在簡單的圖形環境中完成工作。