parted 是什麼?
Linux 中的 Parted 是一個用來管理磁碟分割區的工具,任何新增、刪除、大小變更等動作都可以用這個工具來處理。
傳統上 Linux 系統中若要管理磁碟分割區,最常使用的工具就是 fdisk,而這個工具只適用於容量較小的硬碟,容量太大的硬碟 (超過2TB) 就無法使用 fdisk 來處理。
Linux LVM 是什麼?
LVM 的全名是 Logical Volume Manager,中文可以翻譯作邏輯捲軸管理員。之所以稱為『捲軸』可能是因為可以將 filesystem 像捲軸一樣伸長或縮短之故!LVM 的作法是將幾個實體的 partitions (或 disk) 透過軟體組合成為一塊看起來是獨立的大磁碟 (VG) , 然後將這塊大磁碟再經過分割成為可使用分割槽 (LV), 最終就能夠掛載使用了。
- Physical Volume, PV, 實體捲軸:作為 LVM 最基礎的物理捲軸,可以是 partition 也可以是整顆 disk。
- Volume Group, VG, 捲軸群組:將許多的 PV 整合成為一個捲軸群組 (VG),這就是所謂的最大的主要大磁碟。 讀者應該知道磁碟的最小儲存單位為 sector,目前主流 sector 為 512bytes 或 4K。而 LVM 也有最小儲存單位, 那就是 Physical Extent (PE),所有的資料都是透過 PE 在 VG 當中進行交換的。
- Physical Extent, PE, 實體範圍區塊:PE 是整個 LVM 最小的儲存區塊,系統的檔案資料都是藉由寫入 PE 來處理的。 簡單的說,這個 PE 就有點像檔案系統裡面的 block 。PE 預設需要是 2 的次方量,且最小為 4M 才行。
- Logical Volume, LV, 邏輯捲軸:最終將 VG 再切割出類似 partition 的 LV 即是可使用的裝置了。 LV 是藉由『分配數個 PE 所組成的裝置』,因此 LV 的容量與 PE 的容量大小有關。

鳥哥前輩很用心,幫大家整理了一張常用的表,在各個階段會使用到相關指令如下表:

本段落引用 鳥哥Linux私房菜
安裝 parted 磁碟分割工具
sudo yum install parted
安裝完後,就可以繼續操作 parted
parted 使用方式,5個步驟輕鬆完成掛載
理解 LVM 概念後,我們要做的是順序就是 partition –> PV –> VG –> LV –> filesystem 這5個步驟,是不是清楚很多呢?本文的範例是,某VM空間即將不足,在管理介面再多分配空間給這台VM,要怎麼把這些空間掛載進LVM中的解說步驟。
Step 1 確認Disk是否變更為自己設定的範圍
parted

Step 2 分割磁碟
(parted) mkpart
起始點數值可以參考上一個partition的結束點(本例為68.7GB)
而結束點,如果是全部切,可使用完整磁碟大小(本例為137GB)
Step 3 設定磁區
編號(primary) 最多4個
#編號 4,由上圖可知目前已經編到 3 故從 4開始 (parted) set 4 lvm on (parted) quit

Step 4 創新磁碟區 /dev/sda4
#創建 /dev/sda4 pvcreate /dev/sda4 #查詢VG Name 如下圖紅框 vgdisplay vgextend centos /dev/sda4

看到 Successfully 就表示成功了
Step 5 檢查磁碟區是否真的已經創建成功
lvdisplay lvextend /dev/centos/root /dev/sda4

Step 6 重新掃描檔案系統結構
xfs 檔案系統:
xfs_growfs /dev/centos/root
ext4 檔案系統:
resize2fs /dev/centos/root
在接著顯示容量,就可以看到主要的硬碟已經擴充
df -h

掛載全新的硬碟
Step1 先檢查當前分割槽資訊
# 使用 lsblk,fdisk,df 等命令檢視當前分割槽資訊 lsblk
本範例中新增了一顆 4TB 的硬碟尚未掛載

Step2 執行 parted
從上圖可得知新硬碟的位置,可以執行以下指令
parted /dev/sdb
Step3 執行 parted
建議都使用 GPT 來進行磁碟分割,除非是如果你的主機板較舊,或仍然使用舊版的BIOS系統,則應該選擇MBR。
# 建立磁碟標籤 (parted) mklabel GPT
Step4 建立分割區
(parted) print # 建立主分割槽,n 為要分的分割槽佔整個磁碟的百分比 (parted) mkpart primary 0% 100% (parted) quit # 讓系統知道新增新分割槽 partprobe # 格式化 mkfs.ext4 /dev/sdb
Step5 掛載磁碟
# 建立目錄 mkdir /mnt # 將剛剛的磁碟掛載到目錄 mount /dev/sdb /mnt
Step5 設定開機自動掛載
# 設定開機自動掛載磁碟 vi /etc/fstab # 新增以下到 fstab /dev/sdb /mnt ext4 defaults 0 0
Step6 檢查是否有成功
df -h

這樣看起來就有掛載成功囉!
參考資料: 鳥哥的 Linux 私房菜、sc8log 、 officeguide
