不是,df -h显示的是文件系统层的可用空间,仅当文件系统已同步扩容(如执行xfs_growfs或resize2fs)后才反映扩容结果;若只扩展了逻辑卷而未扩展文件系统,df -h仍显示旧容量。

df -h 显示的是扩容后的实际可用空间吗?
是,但前提是文件系统已同步扩容。df -h 读取的是文件系统层的元数据,不是逻辑卷(LV)本身的大小。如果只执行了 lvextend 而没运行 xfs_growfs 或 resize2fs,df -h 仍会显示旧容量——它不撒谎,只是“还没更新”。
怎么确认逻辑卷和文件系统都真正扩容成功了?
必须交叉验证三层状态:
-
lvs:看 LV 的LSize是否已增大(例如从 30G → 120G),这是 LVM 层的最终容量 -
df -h /:看挂载点的实际可用空间是否同步增长(注意单位要一致,避免误判 GB/ GiB 差异) -
xfs_info /(XFS)或tune2fs -l /dev/mapper/centos-root | grep "Block count"(ext4):直接查文件系统底层块数,这是最权威的“真实容量”依据
为什么 df -h 和 lsblk 显示的容量不一致?
lsblk 显示的是块设备(PV/LV)的原始大小,不含文件系统开销;df -h 显示的是文件系统可用空间,已扣除 superblock、inode table、预留块(root reserved blocks)等。例如 ext4 默认预留 5% 给 root 用户,XFS 则无此保留,但有 AG(allocation group)元数据开销。两者差值在几 GB 内属正常,不必强求相等。
扩容后 df -h 没变化?常见卡点在哪
最容易漏掉的一步是文件系统扩容命令:
- XFS 系统必须用
xfs_growfs /(不能用resize2fs,会报错 “Invalid argument”) - ext4 必须用
resize2fs /dev/mapper/centos-root(不能对挂载点路径如/直接操作) - 如果 LV 扩容时用了
-r参数(如lvextend -r -L +20G /dev/centos/root),LVM 会自动调用对应文件系统工具——但仅限于系统已知的类型,自定义挂载或非标准路径可能失效
真实容量不是“扩完 LV 就完事”,而是 LV 大小、文件系统结构、挂载点视图三者严格对齐。任一环节断开,df -h 就不会更新——它只反映文件系统当前认知的容量,不多也不少。











