linux文件系统扩容必须先用lvextend扩展逻辑卷,再用resize2fs(ext4)或xfs_growfs(xfs)同步文件系统,二者缺一不可;顺序颠倒、命令混用或类型误判均导致空间不生效或报错。

Linux 文件系统扩容不是“扩完逻辑卷就完事”,关键在两步缺一不可:先调 LV 大小,再同步文件系统。顺序错、命令混、类型误判,都会导致空间不生效或报错。
确认当前 LVM 结构和文件系统类型
动手前必须摸清家底:
- 用 pvdisplay 查物理卷是否就绪、有无空闲空间
- 用 vgdisplay 看卷组(VG)的 Free PE 是否足够;为 0 就得先加盘或扩 PV
- 用 lvdisplay 找目标逻辑卷路径(如 /dev/centos/root)及其挂载点
- 用 df -T /mount/point 精准判断文件系统类型——别信分区名或历史印象;/boot 永远不能基于 LVM
给卷组(VG)补充空间(必要时)
如果 VG 已满,扩容 LV 前必须先扩容 VG:
- 新增硬盘(如 /dev/sdc):pvcreate /dev/sdc && vgextend myvg /dev/sdc
- 已有 PV 对应分区扩容后(如 /dev/sdb1 容量变大):pvresize /dev/sdb1(自动识别并更新)
- 执行后再次 vgdisplay,确认 Free PE 数已增加
动态扩容逻辑卷(LV)和文件系统
两步严格按序执行,不可跳过或颠倒:
-
第一步:lvextend 扩逻辑卷本身
— 加 10G:lvextend -L +10G /dev/mapper/vgname-lvname
— 用尽 VG 所有空闲:lvextend -l +100%FREE /dev/mapper/vgname-lvname -
第二步:同步调整文件系统
— ext4/ext3/ext2:resize2fs /dev/mapper/vgname-lvname(参数是设备路径,可在线执行)
— xfs:xfs_growfs /mount/point(参数是挂载点,必须已挂载,不支持指定大小) - 完成后运行 df -h,容量才真正更新;若仍显示旧值,说明第二步漏了
缩容操作:高危动作,非必要不建议
xfs 完全不支持缩容;ext4 缩容风险极高,仅限离线且备份完备场景:
- 必须先 umount,再 e2fsck -f 强制检查
- 再用 resize2fs /dev/mapper/vg-lv 5G 缩文件系统(单位不支持小数,如 0.5G 会报错)
- 最后才 lvreduce -L 5G /dev/mapper/vg-lv 缩 LV
- 跳过检查、顺序颠倒、未备份,极易造成数据不可逆损坏











