您好,欢迎光临中国U网,租用美国服务器香港服务器瑞典服务器等全球各地的服务器。
您现在的位置:首页 > 帮助中心 > 服务器问题 > CentOS Linux如何无损调整分区大小(XFS文件系统)

CentOS Linux如何无损调整分区大小(XFS文件系统)

来源:中国U网 日期:2018-01-17 类别:服务器问题 点击:8717
Windows 2008以前,一般都没有什么好办法在不重装系统的情况下调整分区,很多都是重装或者用像Patition Tool这样的工具来操作,稍不留神还容易出错;Windows 2008系统自己加入了调整分区的功能,相对来说就容易多了。但是一直都没有接触过CentOS Linux系统不重装的情况下调整分区的,今天研究了一下,实现了Linux XFS文件系统上的分区调整。
 
系统环境: CentOS 7.2 64-bit
情况:
/home:873GB
/:50GB
/ 分区不够用
分区类型:XFS  (分区类别可以用命令blkid 来查看,输出结果第一行最后就可以看到)
思路:
把home分区的空间划一部分到root分区
 
操作:
1、通过df -h查看分区情况
 
[root@localhost ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   50G   31G   20G  62% /
devtmpfs             7.8G     0  7.8G   0% /dev
tmpfs                7.8G     0  7.8G   0% /dev/shm
tmpfs                7.8G  817M  7.0G  11% /run
tmpfs                7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/cl-home   873G   31M   873G  1% /home
/dev/sda2           1014M  131M  884M  13% /boot
/dev/sda1            200M  9.5M  191M   5% /boot/efi
tmpfs                1.6G     0  1.6G   0% /run/user/0
 
 
2、lvdisplay 查看各分区的信息
 
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/cl/swap
  LV Name                swap
  VG Name                cl
  LV UUID                DDpjMZ-SFwL-IVud-cewL-yqeK-TFqe-tAS9b4
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-10-17 16:48:55 +0800
  LV Status              available
  # open                 2
  LV Size                7.88 GiB
  Current LE             2016
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
 
  --- Logical volume ---
  LV Path                /dev/cl/home
  LV Name                home
  VG Name                cl
  LV UUID                21q7cu-zJyg-R6W5-gpEt-ctb3-CqH7-TyoGOH
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-10-17 16:48:56 +0800
  LV Status              available
  # open                 1
  LV Size                872.43 GiB
  Current LE             223343
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
 
  --- Logical volume ---
  LV Path                /dev/cl/root
  LV Name                root
  VG Name                cl
  LV UUID                paz3dp-GQ9T-VqAT-gPGT-Q2Go-tMro-zSpDLQ
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-10-17 16:48:59 +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
 
 
 
3、减少/dev/centos/home的空间
 
# 命令设置 /dev/centos/home 分区 50G空间
[root@localhost ~]# lvreduce -L 50G /dev/cl/home
  WARNING: Reducing active logical volume to 50.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce cl/home? [y/n]: y
  Size of logical volume cl/home changed from 872.43 GiB (223343 extents) to 50.00 GiB (12800 extents).
  Logical volume cl/home successfully resized.
 
4、增加/dev/centos/root的空间
 
[root@localhost ~]# lvextend -l +100%FREE /dev/cl/root
  Size of logical volume cl/root changed from 50.00 GiB (12800 extents) to 872.44 GiB (223344 extents).
  Logical volume cl/root successfully resized.
 
5、扩展XFS文件空间大小
 
[root@localhost ~]# xfs_growfs /dev/mapper/cl-root
meta-data=/dev/mapper/cl-root    isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        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=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 228704256
 
 
到此/dev/centos/root的扩展结束,不过还有一些后遗症,调整后的/dev/mapper/cl-home 显示的大小一直不正常,这样也会导致重启的时候无法根据/etc/fstab里面的规则挂载正确的/home,直接进入紧急模式(welcome to emergency mode),由于我们/home里面没有什么文件,所以我们用格式化的办法,进行了修复。
 
[root@localhost ~]# mkfs.xfs /dev/mapper/cl-home
这样再卸载和挂载就没有问题了
[root@localhost ~]# umount /home
 
[root@localhost ~]# mount /home
 
至此整个的调整分区圆满结束。
 
留下一个小问题做思考,就是如果同时想保留/dev/mapper/centos-home里面的数据的话,如何无损调整分区?
 
2018年1月17日更新:暂时没有找到把调整小了的分区(/dev/mapper/centos-home)里面的数据完整保留下来的办法。

关键词:CentOS调整分区,Linux调整分区,XFS调整分区
CentOS Linux如何无损调整分区大小(XFS文件系统)为中国U网原创文章,在不经过允许的情况下,禁止用于商业用途或随意转载,转载请注明出处,并加上本页链接地址:
http://www.cuwww.com/help/detail-78.html