在虚拟机环境中,磁盘空间不足是最常见的问题之一。本文基于 银河麒麟 V10 系统(类似 CentOS/RHEL,使用 LVM 管理根分区,文件系统为 XFS),详细记录了在 VMware Workstation 中通过添加一块新虚拟硬盘,并将其融入现有 LVM 卷组,实现根分区在线扩容的完整过程。
本文适用于:
- 系统:银河麒麟 V10(或其他使用 LVM + XFS 的 Linux 发行版)
- 虚拟化平台:VMware Workstation 17 Pro(其他版本类似)
- 场景:根分区空间不足,想通过添加新磁盘扩容根分区(/)
重要提醒:所有磁盘操作都有风险,请务必提前备份重要数据或创建 VMware 快照!
一、初始环境
虚拟机原始磁盘:20G(/dev/sda)
分区情况:
- /dev/sda1:1G(/boot)
- /dev/sda2:19G(LVM 物理卷,类型 8e)
LVM 情况:
- 卷组(VG):klas
- 逻辑卷(LV):
- klas-root:17G(根分区,XFS 文件系统)
- klas-swap:2G
初始空间使用情况:
bash
# df -h /
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/klas-root 17G 11G 7.0G 60% /
卷组已满:
bash
# vgs
VG #PV #LV #SN Attr VSize VFree
klas 1 2 0 wz--n- <19.00g 0
根文件系统类型:
bash
# blkid /dev/mapper/klas-root
/dev/mapper/klas-root: UUID="533ebcf0-7d8d-4914-ba59-fa08d6459ba0" TYPE="xfs"
二、扩容方案
- 在 VMware 中添加一块 50G 新虚拟硬盘(/dev/sdb)
- 对新磁盘分区(创建 Linux LVM 类型分区)
- 将新分区初始化为 LVM 物理卷(PV)
- 将新 PV 加入现有卷组 klas
- 扩展根逻辑卷(klas-root)
- 在线扩展 XFS 文件系统
整个过程无需重启,完全在线操作。
三、详细操作步骤
步骤1:VMware 中添加新磁盘(略)
关闭虚拟机 → 编辑虚拟机设置 → 添加硬盘 → 创建 50G 新磁盘 → 启动虚拟机。
启动后可见新磁盘:
bash
# fdisk -l
...
Disk /dev/sdb:50 GiB,...
步骤2:对新磁盘分区(创建 Linux LVM 类型分区)
bash
fdisk /dev/sdb
操作流程:
n→ 新建分区p→ 主分区1→ 分区号 1- 起点扇区直接回车(默认)
- 末尾扇区直接回车(使用全部空间)
t→ 修改分区类型8e→ Linux LVMw→ 写入并退出
验证:
bash
# fdisk -l /dev/sdb
Disk /dev/sdb:50 GiB,...
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 104857599 104855552 50G 8e Linux LVM
步骤3:初始化物理卷(PV)
bash
pvcreate /dev/sdb1
验证:
bash
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 klas lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 a-- 50.00g 50.00g
步骤4:将新 PV 加入现有卷组 klas
bash
vgextend klas /dev/sdb1
验证:
bash
# vgs
VG #PV #LV #SN Attr VSize VFree
klas 2 2 0 wz--n- <69.00g <50.00g # 总大小变为约69G
步骤5:扩展根逻辑卷(将新空间全部加入根分区)
bash
lvextend -l +100%FREE /dev/mapper/klas-root
(也可指定大小,如 lvextend -L +49G /dev/mapper/klas-root)
验证:
bash
# lvs
# 或
# lvdisplay /dev/klas/root
根 LV 大小应变为约 67G。
步骤6:在线扩展 XFS 文件系统(关键一步)
bash
xfs_growfs /
此命令会立即将新增空间应用到根文件系统。
步骤7:最终验证
bash
# df -h /
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/klas-root 67G 11G 57G 16% /
成功!根分区从 17G 扩容到 67G,可用空间 57G。
完整状态检查:
bash
# pvs # 两个 PV
# vgs # VG 约69G
# lvs # root LV 约67G
# df -h # 根分区已增大
四、注意事项
- 备份优先:操作前务必创建 VMware 快照或备份重要数据。
- XFS 文件系统必须使用
xfs_growfs,不能用resize2fs。 - 整个过程无需重启,扩展后空间立即可用。
- 后续再扩容 :只需再添加磁盘,从
pvcreate开始重复后续步骤即可。 - 如果新磁盘已被挂载 :执行
pvcreate前需先umount。
五、总结
通过 LVM 的强大灵活性,我们只需添加一块新磁盘,就能轻松实现根分区的在线扩容,无需重新安装系统或迁移数据。这在虚拟机环境中尤其实用。
本次扩容从 17G → 67G,整个过程不到 10 分钟,操作简单且安全。