背景
CentOS 7 默认安装时,经常出现这种情况:
| 分区 | 容量 | 已用 | 问题 |
|---|---|---|---|
/ |
50G | 49G | 空间即将耗尽 |
/home |
965G | 33M | 大量空间闲置 |
目标:从 /home 回收 500G 给 /,同时保留 100G 给 /home 继续使用。
操作步骤
1. 查看当前分区
df -h
输出示例:
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 49G 1.6G 97% /
/dev/mapper/centos-home 965G 33M 965G 1% /home
2. 备份并卸载 /home
# 先备份 /home 数据
cp -r /home /home-bak
# 卸载 /home
umount /home
# 确认 /home 已卸载
df -h
⚠️ 卸载
/home会踢出所有已登录的普通用户,建议在单用户模式或通过 SSH root 执行。
3. 移除 /home 的 LV
lvremove /dev/mapper/centos-home
确认提示输入 y:
Do you really want to remove active logical volume centos/home? [y/n]: y
Logical volume "home" successfully removed
4. 扩展 / 的 LV
lvextend -L +500G /dev/mapper/centos-root
输出示例:
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 550.00 GiB (140800 extents).
Logical volume centos/root successfully resized.
5. 扩展文件系统
此时 df -h 看到的 / 容量不会立即变化 — 因为 LV 虽然变大了,但文件系统还没感知到。
先确认文件系统类型:
df -hT
- 如果是 xfs(CentOS 7 默认):使用
xfs_growfs - 如果是 ext4:使用
resize2fs
# xfs 文件系统
xfs_growfs /dev/mapper/centos-root
输出示例:
data blocks changed from 13107200 to 144179200
6. 验证 / 扩容结果
df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 550G 49G 502G 9% /
从 50G → 550G,成功。
7. 重新创建 /home 的 LV
查看 VG 剩余空间:
vgdisplay
找到 Free PE / Size,然后创建新的 home LV:
lvcreate -L 100G -n home centos
8. 格式化并挂载 /home
# 格式化(与原来相同的文件系统类型)
mkfs.xfs /dev/centos/home
# 挂载
mount /dev/centos/home /home
9. 恢复数据
cp -r /home-bak/* /home/
最终结果
| 分区 | 扩容前 | 扩容后 |
|---|---|---|
/ |
50G | 550G |
/home |
965G | 100G |
注意事项
| 风险点 | 说明 |
|---|---|
| 业务中断 | 卸载 /home 会影响所有普通用户登录 |
| 备份先行 | cp -r /home /home-bak 必须第一步执行 |
| 文件系统类型 | xfs 用 xfs_growfs,ext4 用 resize2fs,不要搞混 |
/home 重建后 fstab |
如果 /home 在 /etc/fstab 中有条目,确认 UUID 或设备路径正确 |
| SELinux 上下文 | 恢复数据后可能需要 restorecon -R /home 修复安全上下文 |
Professional English Terms
| Term | Meaning |
|---|---|
| LVM (Logical Volume Manager) | 逻辑卷管理器,支持弹性调整分区大小 |
| LV (Logical Volume) | 逻辑卷,LVM 中的可弹性调整的存储单元 |
| VG (Volume Group) | 卷组,多个 PV 组成的存储池 |
| xfs_growfs | XFS 文件系统在线扩容命令 |
| lvremove / lvextend / lvcreate | LVM 逻辑卷的删除 / 扩展 / 创建操作 |