首页 > 代码库 > centos7根分区硬盘扩容

centos7根分区硬盘扩容

运用虚拟机经常会出现硬盘容量不足的情况,在不改变配置的要求下,直接对根目录增加容量。

centos7的默认安装已经把磁盘管理成LVM的卷形式,可以比较容易扩展磁盘容量。但是centos7在拓展文件分区的时候,很多文章用resize2fs命令,就会报错,LVM使用了XFS的分区文件格式,就不能用该命令了。


目前还有很多使用的硬盘是MBR模式,主分区只能有4个。安装的时候用了2个,一个是swap一个是root,分别使用了两个分区。这样就只能分2个,如果对未来的使用不确定,那么扩展的时候,就不要分主分区,而是扩展分区,为了以后可以多次扩展硬盘容量。


首先是在虚拟机的管理界面,扩大硬盘容量,此处省略,启动机器。

然后先看看自己的容量

df -h

/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% /boot


fdisk -l

/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    33554431    16264192   8e  Linux LVM

然后对硬盘分区

fdisk /dev/sda

使用n命令

Command (m for help): n

Partition type:
   p   primary (2 primary, 0 extended, 1 free)
   e   extended

会让选第几分区,一般顺序排,就是3,如果就扩展一次的话,用p选项,如果以后可能多次扩容,选e,我们这里为了简单用了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

  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               centos
  PV Size               2.00 GiB / not usable 4.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              511
  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就可以看见容量变大了。

本文出自 “天才没有那1%是万万不行的” 博客,请务必保留此出处http://xushen.blog.51cto.com/1673219/1870526

centos7根分区硬盘扩容