一、環境
二、命令及含義
- fdisk
????fdisk?
是一個較老的分區表創建和管理工具,主要支持MBR
(Master Boot Record)格式的分區表。MBR
分區表支持的硬盤單個分區最大容量為2TB,最多可以有4個主分區。fdisk通過命令行界面進行操作,主要命令包括查看分區表(p)、創建新分區(n)、刪除分區(d)、改變分區類型(t)等。fdisk適用于處理較小的硬盤和MBR分區表,但對于大于2TB
的硬盤或需要GPT分區表的場景則不適用?
- parted
???parted?
是一個功能強大的磁盤分區工具,支持MBR
和GPT
兩種分區表。與fdisk不同,parted可以直接對GPT格式的磁盤進行操作,適用于大容量硬盤(如大于2TB)的分區需求。parted也通過命令行界面進行操作,提供了更多高級功能,如調整分區大小、格式化分區等。其基本命令包括查看分區(p)、刪除分區(rm)、創建新分區(mkpart)等。parted
在處理GPT
分區表時更為靈活和強大? - gdisk
???gdisk
是一個功能強大的GPT
分區表管理工具,專門用于GPT
分區表。gdisk
支持大容量硬盤和復雜的分區需求,可以通過命令行進行操作。其基本命令包括查看GPT
分區表、創建新分區、刪除分區等。gdisk
與parted
類似,但專注于GPT
分區表的操作?
總結
fdisk?
適用于處理較小的硬盤和MBR分區表,操作簡單但功能有限。
?parted?
支持MBR和GPT分區表,功能強大,適用于大容量硬盤和復雜需求。
?gdisk?
專注于GPT分區表,功能與parted類似,但更專注于GPT的支持。
三、步驟
1.準備測試環境(非lvm)
lsblk
fdisk -l
parted -s /dev/sdc mklabel gpt mkpart xfs 0% 100% //靜默擴容gpt模式
mkfs.xfs /dev/sdc1 //格式化xfs
mkdir /test //創建測試目錄
mount /dev/sdc1 /test/ //掛載目錄
df -h
# 創建測試數據
touch /test/{1,2,3,4,5,6}
echo "data" > /test/1
lsblk
# 給sdb原有基礎上加100G
umount /test
partprobe /dev/sdc //取消掛載刷新或者reboot
lsblk
2.擴容(非lvm)
lsblk
fdisk -l
umount /dev/sdc1 //擴容前一定要取消掛載
parted /dev/sdc
print
resizepart 1 100% //因為centos7自帶的是3.1版本則不支持此命令,改用gdisk
yum install -y gdisk
gdisk -l /dev/sdc //查看起始位置
gdisk /dev/sdc
d
n
1 //原始分區號
回車
回車
回車
w
y
partprobe /dev/sdc //如果沒生效需要reboot
說明:這里因為內核沒有識別 重啟過所以sdc識別變成sdb了
mount /dev/sdb1 /test
xfs_growfs /test
# 驗證數據
df -h
ls /test/
cat /test/1
3.準備測試環境(lvm)
lsblk
fdisk -l
parted -s /dev/sdb mklabel gpt mkpart xfs 0% 100%
pvcreate /dev/sdb1
vgcreate vg1 /dev/sdb1
vgs && pvslvcreate -l 100%FREE -n lv1 vg1
lvs && vgs
ls -l /dev/vg1/lv1
mkfs.xfs /dev/vg1/lv1
mount /dev/vg1/lv1 /test/
命令詳解:
?parted -s /dev/sdb mklabel gpt mkpart xfs 0% 100%
作用:在 /dev/sdb 上創建一個 GPT 分區表,并劃出一個 100% 大小的分區。
-s:silent 模式,非交互式
mklabel gpt:創建 GPT 分區表(支持 2TB 以上磁盤)
mkpart xfs 0% 100%:新建一個分區,類型為 xfs(只是標注,實際格式化在后面),從磁盤起始到末尾
結果:你會得到一個新分區 /dev/sdb1,占滿整個 /dev/sdb
?pvcreate /dev/sdb1
作用:把 /dev/sdb1 初始化為一個 LVM 物理卷(PV)
這一步是讓 LVM 能夠接管這塊分區作為底層存儲
執行后可以用 pvs 查看這個 PV 狀態
?vgcreate vg1 /dev/sdb1
作用:創建一個新的 LVM卷組(VG),名字叫 vg1,并將 /dev/sdb1 加入其中
卷組是多個 PV 的邏輯聚合體,可以像資源池一樣分配空間
?vgs && pvs
作用:分別查看卷組(VG)和物理卷(PV)的狀態
vgs:顯示卷組名、可用容量等信息
pvs:顯示物理卷的位置、屬于哪個 VG、大小等
?lvcreate -l 100%FREE -n lv1 vg1
作用:在卷組 vg1 中創建一個新的 邏輯卷(LV),名稱為 lv1
-l 100%FREE:使用卷組中所有剩余的空間
-n lv1:設置邏輯卷名為 lv1
創建完成后,會生成 /dev/vg1/lv1
?lvs && vgs
作用:查看邏輯卷(LV)和卷組(VG)的狀態
lvs:列出邏輯卷的大小、路徑、所屬卷組等
vgs:確認剩余空間、邏輯卷數量等
?ls -l /dev/vg1/lv1
作用:確認邏輯卷設備文件已生成(本質上是一個塊設備)
你會看到:/dev/vg1/lv1 -> /dev/mapper/vg1-lv1(LVM 使用 dm 設備映射)
?mkfs.xfs /dev/vg1/lv1
作用:將邏輯卷格式化為 XFS 文件系統
注意:你之前在 parted 中聲明了 xfs,那只是“標簽”,真正格式化要靠這一步
如果你想用 ext4 或其他,也可以改為 mkfs.ext4
?mount /dev/vg1/lv1 /test/
作用:將邏輯卷掛載到 /test 目錄
前提:目錄 /test 必須存在
完成后你就可以在 /test 下讀寫新磁盤空間了
df -h
touch /test/{1,2,3,4,5,6}
echo "data" > /test/1
# 給sdb原有基礎上加100G
umount /test
partprobe /dev/sdb //取消掛載刷新,如果沒變那就需要重啟reboot使內核識別
lsblk
4.擴容(lvm)
# 記得卸載掛載 umount /test
gdisk -l /dev/sdb //查看起始位置
gdisk /dev/sdb
d
n
1 //原始分區號
回車
回車
回車
w
y //如果輸入了兩次y 那么就需要重新在執行一遍gdisk分區
說明:
警告!次級標頭在磁盤上放置得太早!你想嗎
糾正這個問題?(Y/N):Y
已將第二個標題和分區表移動到正確位置。
因出現警告所以需要在執行一遍gdisk
gdisk /dev/sdb
d
n
1 //原始分區號
回車
回車
回車
w
y
partprobe /dev/sdb
說明:出現這個意思就是需要
reboot
才可以讓內核識別變動。
reboot
lsblk
pvresize /dev/sdb1 //擴容物理卷 PV
lvextend -r -l +100%FREE /dev/vg1/lv1 // -r就是擴容文件系統
# 數據驗證
mount /dev/vg1/lv1 /test
ls /test/
cat /test/1
df -h
lsblk
四、結束語
??本次GPT
原有磁盤擴容實戰記錄LVM
、非LVM
就到此結束了,后期會給大家帶來更多的腳本,感謝認真讀完,如果覺得還可以,那么給作者點贊、收藏、關注吧!