zoukankan      html  css  js  c++  java
  • Centos/Linux下调整分区大小(以home和根分区为例)

    在安装新系统的时候,有时候没法预估或者说错误的划分了分区大小,常常会导致我们后面的操作出现极大地不方便,比如某个分区分的太小了,导致
    软件安装的时候会报安装空间不够,这就很麻烦。在这里我就记录一下错误分区后对home和根分区存储空间大小调整的整个过程!
    1.查看我们机器现有的分区状况
    注意红色框中的信息,这是我们后面要更改的分区路径。
    通过上面我们可以发现根分区和home分区产生极大的不合理性,home分区太大了,所以这里我们将对home分区缩小存储空间并把压缩的存储空间添加到root下面。
    2.卸载我们的home分区,并压缩我们的home分区大小
    3.这个时候我们重新装载我们的home目录,通过运行结果可以看到我们将home分区压缩到20G
    这样对home的压缩并重新装载就完成了,如下图:
    4.我们上面的三步将home的块处理好了,但是我们空闲的硬盘并没有添加到root下,所以下面的步骤就是将压缩出来的磁盘空间添加到root下:
    这个重新加载和挂载的过程中需要花费一点时间,不过我们也可以在这段时间中不断的查看盘符的大小,这个时候我们会发现root盘符的大小会一点点的增加上来,如下图:
    从上图最后的结果我们可以看出我们将home中的空闲盘符压缩出来812G添加到了root下面,这样我们的root空间就瞬间增加了。这样我们的目的就达到了。
     
    空间无损调整实例

    情况:

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    # 设置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%

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ 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.查看各分区信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    $ 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分区空间

    1
    2
    3
    4
    5
    6
    7
    8
    # 释放 /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分区空间

    1
    2
    3
    $ 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文件空间大小

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ 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
  • 相关阅读:
    SlickEdit 中 GDB 调试时SIG32 使得无法跟踪的问题 解决方法
    ln与mount
    ubuntu12.04 的 root 用户显示 中文 和 默认显示中文的方法
    ASP.NET MVC控制器作用
    ASP.NET管道模型
    第二章MVC框架如何截获请求
    第一章MVC与WebForms处理请求的区别
    asp.net运行原理一
    一个通配符引起的错误
    关于权限
  • 原文地址:https://www.cnblogs.com/ct20150811/p/11010955.html
Copyright © 2011-2022 走看看