linux虚拟机扩展现有磁盘空间需三步:虚拟平台扩容→系统内识别并扩展分区或pv→扩容文件系统;lvm方式最安全,传统分区需growpart;扩容前须关机、删快照、确认lvm/文件系统类型。

在 Linux 虚拟机中扩展现有磁盘空间,核心是“三步走”:先在虚拟机平台扩大虚拟磁盘 → 再在系统内识别并扩展分区或物理卷 → 最后扩容文件系统。整个过程通常无需重装系统,但部分操作需谨慎(尤其涉及分区表修改)。
扩容前必须确认的几件事
- 虚拟机已关机(VMware/VirtualBox 中扩展磁盘时,若存在快照,必须先全部删除;否则扩展按钮会灰显或报错)
- 目标磁盘使用的是 LVM 管理(推荐且最灵活),或为传统分区(如
/dev/sda1) - 文件系统类型:ext4 可在线 resize,XFS 必须用
xfs_growfs且只能扩容不能缩容
LVM 方式扩容(最常用、最安全)
适用于已有 LVM 结构(PV→VG→LV),例如根分区 / 或 /data 挂载在 LV 上:
- 在 VMware 中将磁盘从 20G 扩到 40G(设置 → Hard Disk → Expand)
- 启动系统,执行以下命令:
- 通知内核重新读取磁盘大小(关键!否则看不到新增容量):
echo 1 > /sys/class/block/sda/device/rescan
- 查看是否识别到新空间:
lsblk或fdisk -l /dev/sda(总容量应已更新) - 若原 LVM 分区是
/dev/sda2,用fdisk /dev/sda删除再重建该分区(类型设为8e,不格式化),保存退出 - 重载物理卷信息:
pvresize /dev/sda2 - 查看空闲空间:
vgdisplay - 扩展逻辑卷(例如扩展根 LV):
lvextend -l +100%FREE /dev/mapper/centos-root
- 扩展文件系统:
- ext4:
resize2fs /dev/mapper/centos-root - XFS:
xfs_growfs /(注意:传挂载点,不是设备路径)
- ext4:
- 通知内核重新读取磁盘大小(关键!否则看不到新增容量):
传统分区方式扩容(无 LVM)
适用于直接挂载 /dev/sda1 这类场景:
- 同样先在虚拟机平台扩容磁盘,并执行
echo 1 > /sys/class/block/sda/device/rescan - 使用
growpart工具扩展分区(比手动 fdisk 更安全):growpart /dev/sda 1 # 扩展 sda 的第 1 个分区
- 再扩展文件系统:
- ext4:
resize2fs /dev/sda1 - XFS:
xfs_growfs /(挂载点)
- ext4:
验证扩容结果
运行 df -h 和 lsblk 对照查看:
-
lsblk显示底层分区/逻辑卷容量已增大 -
df -h显示挂载点可用空间同步增长
不复杂但容易忽略细节











