擴展 CentOS 7 /root partition 的容量(並且删除預設的 /home partition)

原文: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