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