当前位置:首页>Linux>手把手教你扩容Linux根分区,XFS+LVM扩容实战,运维必收藏(附避坑指南)

手把手教你扩容Linux根分区,XFS+LVM扩容实战,运维必收藏(附避坑指南)

  • 2026-10-21 13:27:31
手把手教你扩容Linux根分区,XFS+LVM扩容实战,运维必收藏(附避坑指南)

大家是不是也遇到过这样的场景?服务器刚上线时觉得50GB根分区绰绰有余,结果业务一跑、日志一打、软件一装,没几个月就弹出“磁盘空间不足”的警告。更糟的是,这个分区还是 / 根分区,连临时腾挪的空间都没有。别慌!今天这篇文章,我就手把手带你搞定XFS根分区扩容这件事。本文将从理念讲起,再到具体操作步骤,最后附上避坑指南。无论你是运维新手还是老手,都能从中获得实用价值。全文都是实战经验,建议收藏备用!

一、XFS文件系统

XFS是硅图公司开发的高性能64位文件系统,2000年被Linux内核收纳,是现代Linux发行版(尤其是RHEL/CentOS 7+、openEuler等)的默认文件系统,性能强、稳定性高,支持超大文件和超大容量。但它有个“特点”:只能扩容,不能缩容。听起来像是个限制,其实对大多数扩容场景来说,反而是简化了操作流程。

二、实战演练:LVM环境下XFS根分区扩容(以CentOS 7为例,其他Linux系统同理)

服务器是一台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使用情况

# 查看/home实际使用了多少空间df -h /home

我需要从1T的/home分区中借一些空间(400G)给根分区。

第四步:卸载/home分区

umount /home

如果无法直接卸载,可以切换到单用户模式或关闭相关服务再卸载

# 方法1:切换到单用户模式sudo systemctl rescue# 方法2:如果系统正在运行一些服务,先停止使用/home的服务# 然后尝试卸载# 如果提示"device is busy",也需要终止相关进程(注意:可能会影响登录用户,如果ssh连接断开重新连接即可)# 终止相关进程服务sudo fuser -km /home

提示"device is busy"解决的方法:

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

第五步:删除/home逻辑卷

# 删除/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。

四、常见误区 & 避坑指南

误区1:用 resize2fs 扩 XFS

这是最经典的错误! resize2fs 只认 ext 系列。对 XFS 使用会报错:

resize2fs: 超级块中的幻数有错...

记住:XFS → xfs_growfs,ext → resize2fs,别混!

误区2:以为扩容后自动生效

很多人执行完 lvextend 或 growpart 就以为完了,其实 文件系统层还没扩!必须再跑 xfs_growfs, 否则 df 看不到变化。

误区3:试图缩小 XFS

XFS 不支持在线缩容,官方至今未实现。如果真需要缩小,只能备份数据 → 重装系统 → 恢复数据。所以,初始规划很重要!

写在最后

Linux 下 XFS 根分区扩容,说难不难,说易也不易——关键在于理解架构、选对方法、步步为营。LVM 方案灵活安全,适合长期运维,只要记住 “先扩设备,再扩文件系统” 这一核心逻辑,就不会出错。如果你觉得有用,欢迎点赞、收藏,希望这篇文章能帮你摆脱“磁盘爆满”的焦虑,也欢迎转发给身边正在抓狂的运维兄弟!也欢迎在评论区留言你的扩容经历或疑问——我们一起把技术做得更扎实。

技术不是炫技,而是解决问题的能力。

—— 与各位共勉

📌 互动时间:你在扩容过程中踩过哪些坑?欢迎在评论区分享经验!觉得有用?点赞+转发,让更多运维兄弟少走弯路!

最新文章

随机文章