大家是不是也遇到过这样的场景?服务器刚上线时觉得50GB根分区绰绰有余,结果业务一跑、日志一打、软件一装,没几个月就弹出“磁盘空间不足”的警告。更糟的是,这个分区还是 / 根分区,连临时腾挪的空间都没有。别慌!今天这篇文章,我就手把手带你搞定XFS根分区扩容这件事。本文将从理念讲起,再到具体操作步骤,最后附上避坑指南。无论你是运维新手还是老手,都能从中获得实用价值。全文都是实战经验,建议收藏备用!
XFS是硅图公司开发的高性能64位文件系统,2000年被Linux内核收纳,是现代Linux发行版(尤其是RHEL/CentOS 7+、openEuler等)的默认文件系统,性能强、稳定性高,支持超大文件和超大容量。但它有个“特点”:只能扩容,不能缩容。听起来像是个限制,其实对大多数扩容场景来说,反而是简化了操作流程。
服务器是一台CentOS 7,根分区为XFS,由LVM管理。当前磁盘空间不足,需要1T的/home分区挪用400G从50GB扩容到450GB。
系统版本信息:

数据备份永远第一步! 我反复强调这一点,因为见过太多人跳过这步直接操作,最后数据丢失追悔莫及。虽然LVM操作相对安全,但建议先备份/home中的重要数据。
lsblkfdisk -lpvsvgslvs我的服务器磁盘布局如下:

[root@localhost mapper]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 3 0 wz--n- 1.09t 0 [root@localhost mapper]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- <1.04t root centos -wi-ao---- 50.00g swap centos -wi-ao---- 4.00g [root@localhost mapper]# pvs PV VG Fmt Attr PSize PFree /dev/sda3 centos lvm2 a-- 1.09t 0 [root@localhost mapper]# # 查看/home实际使用了多少空间df -h /home
我需要从1T的/home分区中借一些空间(400G)给根分区。
umount /home如果无法直接卸载,可以切换到单用户模式或关闭相关服务再卸载
# 方法1:切换到单用户模式sudo systemctl rescue# 方法2:如果系统正在运行一些服务,先停止使用/home的服务# 然后尝试卸载# 如果提示"device is busy",也需要终止相关进程(注意:可能会影响登录用户,如果ssh连接断开重新连接即可)# 终止相关进程服务sudo fuser -km /home提示"device is busy"解决的方法:

无法正常卸载进入单用户解决的方法:

# 删除/home逻辑卷(注意:这会删除所有/home数据!)sudo lvremove /dev/mapper/centos-home# 查看卷组剩余空间sudo vgs# 扩展根目录逻辑卷(比如扩展400G)sudo lvextend -L +400G /dev/mapper/centos-root# 扩展根目录文件系统(xfs)sudo xfs_growfs /dev/mapper/centos-root# 创建新的/home逻辑卷(使用剩余空间)sudo lvcreate -L 600G -n home centos# 或者使用所有剩余空间# sudo lvcreate -l 100%FREE -n home centos
# 格式化新的/home为xfssudo mkfs.xfs /dev/mapper/centos-home# 挂载新的/homesudo mount /dev/mapper/centos-home /home# 记得恢复之前备份数据

成功了! 根分区从50G扩大到了450G。
这是最经典的错误! resize2fs 只认 ext 系列。对 XFS 使用会报错:
resize2fs: 超级块中的幻数有错...记住:XFS → xfs_growfs,ext → resize2fs,别混!
很多人执行完 lvextend 或 growpart 就以为完了,其实 文件系统层还没扩!必须再跑 xfs_growfs, 否则 df 看不到变化。
XFS 不支持在线缩容,官方至今未实现。如果真需要缩小,只能备份数据 → 重装系统 → 恢复数据。所以,初始规划很重要!
Linux 下 XFS 根分区扩容,说难不难,说易也不易——关键在于理解架构、选对方法、步步为营。LVM 方案灵活安全,适合长期运维,只要记住 “先扩设备,再扩文件系统” 这一核心逻辑,就不会出错。如果你觉得有用,欢迎点赞、收藏,希望这篇文章能帮你摆脱“磁盘爆满”的焦虑,也欢迎转发给身边正在抓狂的运维兄弟!也欢迎在评论区留言你的扩容经历或疑问——我们一起把技术做得更扎实。
技术不是炫技,而是解决问题的能力。
—— 与各位共勉
📌 互动时间:你在扩容过程中踩过哪些坑?欢迎在评论区分享经验!觉得有用?点赞+转发,让更多运维兄弟少走弯路!