在日常運維中,常見的問題之一就是安裝的軟件過多,導致根分區(/
)空間不足,而其他分區(例如 /home
)卻有大量閑置空間。本文將演示如何在 Rocky Linux 9.2 上,通過 LVM(Logical Volume Manager) 技術,把 /home
分區的部分空間釋放出來,再擴容到 /
根分區。
1. 環境說明
通過 df -h
查看當前磁盤空間:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rl-root 70G 26G 45G 37% /
/dev/mapper/rl-home 45G 1.8G 43G 4% /home
/dev/sda2 1014M 246M 769M 25% /boot
/dev/sda1 599M 7.0M 592M 2% /boot/efi
可以看到:
/
根分區:70G(未來可能不足)/home
:45G,其中使用僅 1.8G,有大量富余空間
目標:從 /home
分區釋放 10G,擴容給 /
根分區。
2. 核心思路
備份
/home
數據(安全起見)。縮小
/home
的邏輯卷大小(減少 10G)。把釋放出來的空間重新分配給
/
的邏輯卷。在線擴容
/
文件系統。
由于系統采用的是 LVM 管理,所以可以動態調整分區大小,操作較為靈活。
3. 操作步驟
3.1 備份 /home
數據
雖然縮容是安全操作,但存在風險,建議提前備份:
rsync -avx /home/ /root/backup_home/
3.2 卸載 /home
縮小分區之前需要卸載掛載點:
umount /home
如果提示 “busy”,可以強制卸載:
umount -l /home
3.3 檢查文件系統并縮小 /home
先運行文件系統一致性檢查(XFS 不支持縮容,通常 Rocky Linux 的 /home
用的是 XFS 文件系統,所以必須先刪除再重建,這里假設你的 /home
是 XFS):
lvremove /dev/rl/home
?? 注意:此操作會刪除 /home
分區,之前的備份就派上用場了。
3.4 釋放空間并擴容 /
確認 rl
卷組有空閑空間:
vgdisplay rl | grep "Free"
將空閑空間(含剛釋放的 45G)中的10G加給 /
根分區:
lvextend -L +10G /dev/rl/root
如果你想把 所有空閑空間都給根分區:
lvextend -l +100%FREE /dev/rl/root
擴展文件系統(XFS):
xfs_growfs /
3.5 重新創建 /home
給 /home
分配一個較小的邏輯卷,比如 35G:
lvcreate -L 35G -n home rl
mkfs.xfs /dev/rl/home
mount /dev/rl/home /home
3.6 恢復數據
將之前備份的數據恢復到新的 /home
:
rsync -avx /root/backup_home/ /home/
4. 驗證
再次df -h查看分區情況:
期望結果:
/dev/mapper/rl-root 80G 26G 54G 33% /
/dev/mapper/rl-home 35G 1.8G 33G 6% /home
可以看到 /
根分區增加了 10G,而 /home
減少了 10G。
5. 注意事項
文件系統類型很關鍵
XFS 不支持在線縮容,只能刪除 LV 再重建。
EXT4 可以用
resize2fs
在線縮小。
務必做好備份
特別是縮容和刪除 LV 前,必須備份
/home
數據。
分配策略
如果
/home
空間基本閑置,可以考慮只留 10~20G,剩余全部分配給/
。
6. 總結
通過 LVM 的動態分區管理,我們可以很方便地調整 Rocky Linux 的磁盤空間分配。本文展示了如何 從 /home
分區釋放 10G 空間并擴容 /
根分區 的完整流程:
備份數據
刪除
/home
LV擴容
/
重建
/home
這種方式不僅解決了根分區不足的問題,也充分利用了磁盤資源。