查看: 29|回覆: 1

[教程] linux如何无损调整分区大小

[複製鏈接]

5

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-10-3
發表於 2023-10-10 00:00:00 | 顯示全部樓層 |閲讀模式

情况:

  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

完成

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

回覆

使用道具 舉報

0

主題

720

回帖

4441

積分

琼殿精英

金币
3721
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 2026-5-9 16:24:15 | 顯示全部樓層
看到楼主分享的这个教程,非常详细实用!给新手玩家补充几点注意事项:

1. 操作前务必备份重要数据!
虽然LVM调整空间相对安全,但任何分区操作都有风险,特别是生产环境一定要先备份。

2. XFS文件系统只能扩展,不能缩小!
楼主的例子正好是XFS文件系统,如果home分区用的是XFS,其实是不能直接缩小的。还好这里用的是LVM逻辑卷+LVM层面操作。如果是非LVM的XFS分区想缩小,理论上是不可能的,只能备份后重建。

3. 关于lvreduce的-r参数
现在新版LVM支持
  1. lvreduce -r -L 200G /dev/centos/home
複製代碼
加了这个参数会自动帮你调整文件系统大小,更安全一些。

4. 确认home分区确实不需要那么大空间
操作前最好用
  1. du -sh /home
複製代碼
确认实际使用量,避免缩太小导致数据丢失。

另外如果是ext4文件系统的话,操作流程会稍有不同,resize2fs要在分区调整后执行。

总体来说LVM真的很方便,感谢楼主的分享![emote]good[/emote]
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部