xfs_growfs可在线扩容XFS文件系统,前提必须全部满足:文件系统为XFS、底层设备已扩容并被内核识别、文件系统当前已挂载;命令仅认挂载点路径,如sudo xfs_growfs /data,无需卸载或重启。
Linux 中对 XFS 文件系统在线扩容,核心就是用 xfs_growfs 命令——它专为已挂载的 XFS 设计,全程无需卸载、不中断服务、不重启系统。但成功扩容的前提不是命令本身,而是三项条件必须全部满足且顺序正确。
缺一不可,漏掉任一个都会报错或无效:
df -T /mount/point 或 xfs_info /mount/point,输出中必须明确出现 type xfs 或 meta-data= 开头的 XFS 特征信息lsblk 查目标设备(如 /dev/mapper/vg0-lv_data 或 /dev/sdb1)的 SIZE 是否已变大;若用 LVM,需先执行 lvextend -L +5G /dev/vg0/lv_data;若为云盘,控制台扩容后要执行 echo 1 > /sys/class/block/sdb/device/rescan
mount | grep /mount/point,确保有对应挂载条目;xfs_growfs 不支持对未挂载设备操作命令只认挂载点路径,不认设备路径,语法极简:
/data 挂载点:sudo xfs_growfs /data
sudo xfs_growfs /
/dev/sdc2),必须显式指定:sudo xfs_growfs -l /dev/sdc2 /data
-d 参数;如需指定目标大小(例如扩到 100G),用 xfs_growfs -D 100G /data(需确保底层设备空间足够)不能只看 df -h,要交叉验证:
df -h /mount/point:观察 Avail 值是否增大、Use% 是否下降xfs_info /mount/point:重点看 data 行中的 blocks= 数值,扩容后应明显变大(比如从 blocks=2621440 变为 blocks=5242880)touch /mount/point/.grow_test && rm /mount/point/.grow_test,确认无报错、写入正常报错本质是某项前提断裂,不是命令写错了:
mount | grep /mount/point 是否含 ro,执行 sudo mount -o remount,rw /mount/point 后重试-l /dev/xxx 显式指定日志设备lsblk 显示设备 SIZE 没变,回退检查扩容操作是否完成并刷新内核识别findmnt /mount/point 确认真实挂载关系