我的版本是ubuntu server 22.04,默认是LVM分区。以下扩容方法只适用LVM分区。
一、判断是否为LVM分区
不是所有虚拟机都默认用 LVM 分区,而是Linux 服务器版的虚拟机(如 Ubuntu Server、CentOS/RHEL Server)通常会默认采用 LVM 分区,原因是 LVM 能提供更灵活的存储管理(比如动态扩容、快照、卷组管理),更适配服务器场景的存储需求。
而以下场景的虚拟机一般不用 LVM:
- Linux 桌面版虚拟机(如 Ubuntu Desktop):默认多采用普通分区,追求简单直接;
- 手动安装系统时,未主动选择 LVM 选项的虚拟机;
- Windows 虚拟机:本身采用 NTFS 分区机制,不使用 LVM。
快速判断是否为LVM的方法
-
命令 1:查看块设备结构
lsblk- 判断依据:若输出中存在
TYPE为lvm的设备,或挂载点(MOUNTPOINTS)对应的设备是/dev/mapper/卷组名-逻辑卷名格式,则系统使用 LVM。
- 判断依据:若输出中存在
-
命令 2:查看卷组信息
vgdisplay- 判断依据:若输出包含卷组(
Volume group)的详细信息(如容量、空闲空间),则系统使用 LVM;若提示 "Volume group not found",则未使用 LVM。
- 判断依据:若输出包含卷组(
-
命令 3:查看逻辑卷信息
lvdisplay- 判断依据:若输出包含逻辑卷(
Logical volume)的路径、容量等信息,则系统使用 LVM;若无输出 / 提示不存在,则未使用 LVM。
- 判断依据:若输出包含逻辑卷(
-
命令 4:查看挂载点对应的设备
df -h /- 判断依据:若根目录(
/)对应的Filesystem是/dev/mapper/xxx格式,则系统使用 LVM;若为/dev/sdaX(普通分区),则未使用 LVM。
- 判断依据:若根目录(
二、前置准备
- 备份虚拟机内的重要数据(避免操作失误导致数据丢失);
- 关闭 Ubuntu 虚拟机(开机状态无法修改 VMware 磁盘配置)。
三、VMware 层面:扩展虚拟磁盘
- 选中目标虚拟机,右键选择「编辑设置」;
- 在硬件列表中选择「硬盘」,点击「扩展」;
- 输入新的磁盘容量(例如原 20G 改为 100G),点击「确定」保存,等待 VMware 完成虚拟磁盘扩容。
四、Ubuntu (server) 系统内:LVM 扩容(核心步骤)
启动虚拟机,登录后执行以下命令:
-
检查存储信息(确认卷组 / 逻辑卷路径)
# 查看磁盘/分区/逻辑卷结构 lsblk # 查看卷组信息(确认卷组名+空闲空间) vgdisplay # 查看逻辑卷准确路径 lvdisplay | grep "LV Path" -
**扩展逻辑卷(分配卷组空闲空间)**将卷组的全部空闲空间分配给根逻辑卷(替换为实际的卷组名 / 逻辑卷路径):
lvextend -l +100%FREE 逻辑卷准确路径(例如/dev/ubuntu-vg/ubuntu-lv) -
扩展文件系统(让系统识别新空间)
# 适用于ext4文件系统(Ubuntu默认) resize2fs 逻辑卷准确路径 -
验证扩容结果确认根目录容量更新:
df -h /
关键注意事项
- 务必通过
vgdisplay/lvdisplay确认卷组名、逻辑卷路径的准确拼写(避免路径错误导致命令失败); - 扩容全程无需卸载分区,支持在线操作(根目录可直接扩容)。
五、演示
1. 从50G扩容到100G
2.查看分区结构
执行:lsblk、fdisk -l
得:
Ubuntu 是LVM 分区结构 ,且虚拟磁盘(
sda)已经扩容到 100G 了,但根目录的逻辑卷只用到了 49G------ 卷组里还有空闲空间,直接扩展逻辑卷即可

3.查看剩余空间:
执行:vgdisplay
得剩余空闲空间为49.00 GiB(Free PE),该空间可直接分配给根逻辑卷以完成扩容。

4. 查看根逻辑卷得正确路径
执行 lvdisplay | grep "LV Path"
得根逻辑卷的正确路径是
/dev/ubuntu-vg/ubuntu-lv

5. 扩展逻辑卷
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

6. 扩展文件系统
让系统识别新增空间:
resize2fs /dev/ubuntu-vg/ubuntu-lv

7. 验证扩容结果
查看根目录容量是否更新:
df -h /
