運用虛擬機常常會出現硬盤容量不足的狀況,在不改變配置的要求下,直接對根目錄增長容量。centos
centos7的默認安裝已經把磁盤管理成LVM的卷形式,能夠比較容易擴展磁盤容量。可是centos7在拓展文件分區的時候,不少文章用resize2fs命令,就會報錯,LVM使用了XFS的分區文件格式,就不能用該命令了。app
目前還有不少使用的硬盤是MBR模式,主分區只能有4個。安裝的時候用了2個,一個是swap一個是root,分別使用了兩個分區。這樣就只能分2個,若是對將來的使用不肯定,那麼擴展的時候,就不要分主分區,而是擴展分區,爲了之後能夠屢次擴展硬盤容量。ide
首先是在虛擬機的管理界面,擴大硬盤容量,此處省略,啓動機器。centos7
而後先看看本身的容量spa
df -horm
/dev/mapper/centos-root 16G 5.8G 13G 33% /
devtmpfs 912M 0 912M 0% /dev
tmpfs 921M 84K 921M 1% /dev/shm
tmpfs 921M 8.9M 912M 1% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /bootip
fdisk -lci
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 33554431 16264192 8e Linux LVM虛擬機
而後對硬盤分區it
fdisk /dev/sda
使用n命令
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 1 free)
e extended
會讓選第幾分區,通常順序排,就是3,用p選項,創建了一個主分區,而後能夠用p命令查看結果
/dev/sda3 37748736 46137343 4194304 83 Linux
能夠看見Id是83,是Linux,這樣不能擴展到券,用t命令改變分區格式爲8e,就是Linux LVM邏輯卷格式。
而後用w命令保存。要重啓動一下。
創建物理卷
pvcreate /dev/sdb3
顯示一下看看
pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 15.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3970
Free PE 0
Allocated PE 3970
PV UUID Dxuc0B-LZe1-X8k8-jzmI-sEQE-fX1j-cXkIHS
--- NEW Physical volume ---
PV Name /dev/sda3
VG Name
PV Size 2.00 GiB / not usable 4.00 MiB
Allocatable No
PE Size 0
Total PE 0
Free PE 0
Allocated PE 511
PV UUID nxf54x-ZdcS-b7GI-lhFo-1YPQ-DWW5-kvSipf
下面就擴容
看看如今的卷組
vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 3
Act PV 3
VG Size 19.50 GiB
PE Size 4.00 MiB
Total PE 4992
Alloc PE / Size 4992 / 19.50 GiB
Free PE / Size 0 / 0
VG UUID lwO318-dF9J-SqwF-k7Sk-aNVD-BXtB-zNFhBH
把新作的sda3分區加入卷,從上面顯示 VG Name centos,卷名是centos
vgextend centos /dev/sda3
在查看一下
vgdisplay
Free PE / Size 511 / 2 Gib
已經變了
查看一下邏輯區的狀況
lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID i7xZpm-66bQ-NNy4-waBk-TCRl-EwLD-T8dhy7
LV Write Access read/write
LV Creation host, time localhost, 2016-11-07 15:27:13 +0900
LV Status available
# open 2
LV Size 1.60 GiB
Current LE 410
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID Kn1mUQ-T30g-x4B3-noRh-TxGu-r1Ql-vL5w6P
LV Write Access read/write
LV Creation host, time localhost, 2016-11-07 15:27:14 +0900
LV Status available
# open 1
LV Size 15.90 GiB
Current LE 4582
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
擴展卷組的大小,路徑就是上面LV Path /dev/centos/root
lvextend -L +1.966G /dev/centos/root
有些文章裏用的是/dev/mapper/centos-root
其實都是指向../dm-1,均可以。
另一點,這裏用的+1.996G,不是2G,由於2GB會失敗,Free PE / Size 511 / 2 Gib顯示511個區塊,511*4/1024=1.996
再查看一下邏輯區的狀況
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID i7xZpm-66bQ-NNy4-waBk-TCRl-EwLD-T8dhy7
LV Write Access read/write
LV Creation host, time localhost, 2016-11-07 15:27:13 +0900
LV Status available
# open 2
LV Size 1.60 GiB
Current LE 410
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID Kn1mUQ-T30g-x4B3-noRh-TxGu-r1Ql-vL5w6P
LV Write Access read/write
LV Creation host, time localhost, 2016-11-07 15:27:14 +0900
LV Status available
# open 1
LV Size 17.90 GiB
Current LE 4582
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
尺寸 LV Size 從15.90 GiB變成17.90 GiB了
下面就是擴展文件系統的尺寸,由於這時候用df -h是看不到變大的。
網上文章大多用了resize2fs,很遺憾,resize2fs: Bad magic number in super-block
這個命令已經不適應新的系統要求了
xfs_growfs /dev/centos/root
顯示的最後一行
data blocks changed from xxxxxx to xxxxxx
代表已經擴展了
這時候再用df -h就能夠看見容量變大了。