在安装新系统的时候,有时候没法预估或者说错误的划分了分区大小,常常会导致我们后面的操作出现极大地不方便,比如某个分区分的太小了,导致软件安装的时候会报安装空间不够,这就很麻烦。在这里我就记录一下错误分区后对home和根分区存储空间大小调整的整个过程!

1.查看我们机器现有的分区状况

Centos修改分区为gpt centos7更改分区大小_centos

注意红色框中的信息,这是我们后面要更改的分区路径。

通过上面我们可以发现根分区和home分区产生极大的不合理性,home分区太大了,所以这里我们将对home分区缩小存储空间并把压缩的存储空间添加到root下面。

2.卸载我们的home分区,并压缩我们的home分区大小

Centos修改分区为gpt centos7更改分区大小_ci_02

3.这个时候我们重新装载我们的home目录,通过运行结果可以看到我们将home分区压缩到20G

Centos修改分区为gpt centos7更改分区大小_ci_03

这样对home的压缩并重新装载就完成了,如下图:

Centos修改分区为gpt centos7更改分区大小_存储空间_04

4.我们上面的三步将home的块处理好了,但是我们空闲的硬盘并没有添加到root下,所以下面的步骤就是将压缩出来的磁盘空间添加到root下:

Centos修改分区为gpt centos7更改分区大小_ci_05

这个重新加载和挂载的过程中需要花费一点时间,不过我们也可以在这段时间中不断的查看盘符的大小,这个时候我们会发现root盘符的大小会一点点的增加上来,如下图:

Centos修改分区为gpt centos7更改分区大小_ci_06

从上图最后的结果我们可以看出我们将home中的空闲盘符压缩出来812G添加到了root下面,这样我们的root空间就瞬间增加了。这样我们的目的就达到了。

 

空间无损调整实例

情况:

  1. home:500G
  2. root:50G
  3. root分区不够用

思路:把home分区的空间划一部分到root分区

# 设置home分区大小为200G,释放300G空间          
           $ lvreduce -L 200G            /dev/centos/home          
                      
           # 将空闲空间扩展到root分区          
           $ lvextend -l +100%FREE            /dev/centos/root          
                      
           # 使用XFS文件系统自带的命令集增加分区空间          
           $ xfs_growfs            /dev/mapper/centos-root


实例

situation

挂载在根目录的分区 /dev/mapper/centos-root 爆满,占用100%

$            df           -h          
           Filesystem        Size Used Avail Use% Mounted on          
           /dev/mapper/centos-root            50G  50G  19M 100% /          
           devtmpfs         32G   0  32G  0%            /dev          
           tmpfs           32G   0  32G  0%            /dev/shm          
           tmpfs           32G 2.5G  29G  8%            /run          
           tmpfs           32G   0  32G  0%            /sys/fs/cgroup          
           /dev/mapper/centos-home           476G  33M 476G  1%            /home          
           /dev/sda1                  497M 238M 259M 48%            /boot          
           tmpfs          6.3G   0 6.3G  0%            /run/user/0


analyze

挂载在根目录的分区空间太小,只有50G,而服务器 home 目录为非常用目录,挂在了近500G的空间。

思路:从 centos-home 分区划出300G空间到 centos-root 分区。

operation

1.查看各分区信息


$ lvdisplay          
           --- Logical volume ---          
           LV Path                   /dev/centos/home          
           LV Name        home          
           VG Name        centos          
           LV UUID        1fAt1E-bQsa-1HXR-MCE2-5VZ1-xzBz-iI1SLv          
           LV Write Access               read           /write          
           LV Creation host,            time           localhost, 2016-10-26 17:23:47 +0800          
           LV Status       available          
           # open         0          
           LV Size        475.70 GiB          
           Current LE       121778          
           Segments        1          
           Allocation       inherit          
           Read ahead sectors   auto          
           - currently            set           to   256          
           Block device      253:2          
                      
           --- Logical volume ---          
           LV Path                   /dev/centos/root          
           LV Name        root          
           VG Name        centos          
           LV UUID        lD64zY-yc3Z-SZaB-dAjK-03YM-2gM8-pfj4oo          
           LV Write Access               read           /write          
           LV Creation host,            time           localhost, 2016-10-26 17:23:48 +0800          
           LV Status       available          
           # open         1          
           LV Size        50.00 GiB          
           Current LE       12800          
           Segments        1          
           Allocation       inherit          
           Read ahead sectors   auto          
           - currently            set           to   256          
           Block device      253:0


2.减少/home分区空间

# 释放 /dev/centos/home 分区 300G 的空间          
           # 命令设置 /dev/centos/home 分区 200G空间          
           $ lvreduce -L 200G            /dev/centos/home          
           WARNING: Reducing active logical volume to 200.00 GiB.          
                      THIS MAY DESTROY YOUR DATA (filesystem etc.)          
           Do you really want to reduce centos           /home           ? [y           /n           ]: y          
                      Size of logical volume centos           /home           changed from 475.70 GiB (121778 extents) to 200.00 GiB (51200 extents).          
                      Logical volume centos           /home           successfully resized.


3.增加/root分区空间


$ lvextend -l +100%FREE            /dev/centos/root          
           Size of logical volume centos           /root           changed from 50.06 GiB (12816 extents) to 325.76 GiB (83394 extents).          
           Logical volume centos           /root           successfully resized.


4.扩展XFS文件空间大小


$ xfs_growfs            /dev/mapper/centos-root          
           meta-data=           /dev/mapper/centos-root           isize=256  agcount=4, agsize=3276800 blks          
                      =            sectsz=512  attr=2, projid32bit=1          
                      =            crc=0    finobt=0 spinodes=0          
           data   =            bsize=4096  blocks=13107200, imaxpct=25          
                      =            sunit=0   swidth=0 blks          
           naming  =version 2       bsize=4096  ascii-ci=0 ftype=0          
           log   =internal        bsize=4096  blocks=6400, version=2          
                      =            sectsz=512  sunit=0 blks, lazy-count=1          
           realtime =none          extsz=4096  blocks=0, rtextents=0          
           data blocks changed from 13107200 to 85395456