当在 VMware 中将 Ubuntu 虚拟机磁盘扩容到 100GB,但运行 df -h 后仍显示:
/dev/mapper/ubuntu--vg-ubuntu--lv 37G 33G 2.6G 93% /
也就是 根目录 / 的逻辑卷容量仍然只有 37G,而不是你预期的 100G。
根本原因
你在 VMware 中只做了“虚拟磁盘扩容”,
但 Ubuntu 系统内部用的是 LVM(逻辑卷管理),
需要你手动扩展文件系统 才能实际使用新空间。
当前磁盘结构分析
从你的输出看,系统用的是 LVM结构:
-
物理磁盘:/dev/nvme0n1
-
分区:/dev/nvme0n1p3(你没显示,但通常是这个)
-
卷组(VG):ubuntu-vg
-
逻辑卷(LV):ubuntu-lv 挂载在 /
你现在的目标是:
把扩容后新增的磁盘空间 分配给根逻辑卷 /,让 df -h 看到新空间。
解决方案:5 步完成 LVM 根卷扩容
你只需按以下 标准 5 步 操作即可(非常安全):
步骤 1:确认物理磁盘扩容成功
先看物理磁盘空间是否变了:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 100G 0 disk
├─nvme0n1p1 259:1 0 953M 0 part /boot/efi
├─nvme0n1p2 259:2 0 1.8G 0 part /boot
└─nvme0n1p3 259:3 0 37.3G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 37.3G 0 lvm /
你应该能看到 /dev/nvme0n1 容量已经变为 100G,且 /dev/nvme0n1p3 是最大的分区。
步骤 2:扩容分区(如果分区没自动变大)
有两种可能:
-
✅ 情况1:你扩容的是已有主分区 /dev/nvme0n1p3 → 可以直接下一步。
-
❌ 情况2:你只扩了磁盘,但分区没变 → 需要使用 growpart 扩容分区。
如果你是情况2, 执行:
sudo growpart /dev/nvme0n1 3
CHANGED: partition=3 start=5623808 old: size=78262239 end=83886046 new: size=204091359 end=209715166
root@private-ser-240:~# pvresize /dev/nvme0n1p3
Physical volume "/dev/nvme0n1p3" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
(3 是你 LVM 所在的分区号,通常是 p3)
查看是否成功:
lsblk
步骤 3:扩容 PV(物理卷)
sudo pvresize /dev/nvme0n1p3
这一步让 LVM 知道你的物理卷变大了。
步骤 4:扩容 LV(逻辑卷)
你要把扩容部分分配给根目录(/)所在的逻辑卷:
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
说明:
- -l +100%FREE 表示把卷组中所有未用空间分配给当前逻辑卷
步骤 5:扩展文件系统
根据你用的文件系统类型(通常是 ext4),执行:
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
如果你用的是 xfs(比较少见),则是:
sudo xfs_growfs /
完成后检查:
df -h
你会看到 / 的可用空间变成了 100G 左右(去掉 boot/efi 等其他分区占用)。