原文:https://gist.github.com/troyfontaine/87091bd6a5c68f45dd62ced3d12bc377
您需要有root的權限,並且可以透過ssh來進行操作。另外,需要注意您的系統中,沒有任何 services 正在 /home 中運行。
這個示例,是假設您是使用默認方式安裝CentOS 7,並且您清楚明白知道 volumes/partitions 的情況,避免因不了解而做成嚴重破壞。
在默認情況下,CentOS 7 使用 XFS 作為 file system 和 Logical Volume Manager (LVM) 建立3個分區 / , /home 和 /swap
步驟 1 – 複制 /home 的內容
執行以下的指令為 /home 備份,注意:在備份前,您必須要確認 /temp/ 有足夠的空間存放 /home 的所有內容。若沒有足夠的空間,切勿繼續後面所有的步驟!
mkdir /temp cp -a /home /temp/
當步驟1完成後,可以繼續步驟2的工作
步驟 2 – Unmount /home 目錄
umount -fl /home
步驟 3 – 查詢 home 在 LVM volume 的容量
用 lvs 指令來查詢 LVM volumes 的屬性
lvs
輸出例子:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home cl -wi-a----- 406.94g root cl -wi-ao---- 50.00g swap cl -wi-ao---- 7.81g
步驟 4 – 移除 home 的 LVM volume
指令:lvremove /dev/{VG 名稱 }/{LV名稱}, 本例子 VG 名稱 為 c1, LV 名稱 為 home
lvremove /dev/cl/home
步驟5 – 調整 root的 LVM volume的容量
在步驟3的輸出例子中,原本 home的 LSize 為 406.94g。我們可以安全地把root擴展406GiB。
指令:lvextend -L+{擴展容量} /dev/ {VG名稱} / {LV名稱}
lvextend -L+406G /dev/cl/root
步驟 6 – 調整 root partition 的分區容量
指令: xfs_growfs /dev/mapper/{VG名稱}– {LV名稱}
xfs_growfs /dev/mapper/cl-root
步驟 7 – 把原本 /home 的檔案及文件,複制到 /home 的目錄中
cp -a /temp/home /
步驟 8 – 移除 /temp 目錄
rm -rf /temp
步驟 9 – 在 /etc/fstab 中移除項目
使用您習慣的文件編輯器,打開 /etc/fstab。並把 /dev/mapper/c1-home 這一行刪除或在該行最前第一個位加入#號
#/dev/mapper/c1-home /home xfs defaults 0 0
步驟 10 – 再後一個重要的步驟
執行以下指令,讓 systemd 同步,並且更改預設設定。
dracut --regenerate-all --force