VMware+Ubuntu+LVM 虚拟机存储扩容全流程(解决分区/空间不识别问题)

作为运维或开发,经常遇到Ubuntu虚拟机根分区空间告急的情况:扩容虚拟机磁盘后,要么分区调不动,要么GParted显示扩了但df -h没变化,要么LVM卷组空间不足......本文结合实际踩坑经历,整理出VMware+Ubuntu+LVM环境下的完整扩容流程,解决这些常见问题。

一、场景与问题说明

适用场景:VMware中运行的Ubuntu系统,根分区基于LVM管理(设备路径通常为/dev/mapper/ubuntu--vg-root)。

常见问题:

  • 虚拟机磁盘扩容后,分区(如sda2/sda5)无法调整大小;
  • GParted显示分区已扩展,但df -h未识别新增空间;
  • LVM卷组空闲空间不足,无法扩展逻辑卷;
  • 分区存在包含关系(sda2包含sda5),调整分区时出现限制。

二、准备工作

  1. 关闭Ubuntu虚拟机,删除所有快照(VMware扩展磁盘需无快照);
  2. 备份虚拟机重要数据(分区调整存在数据风险);
  3. (可选)准备Ubuntu Live CD启动U盘(解决分区挂载导致的调整限制)。

三、完整扩容流程

步骤1:VMware端扩展虚拟磁盘

  1. 打开VMware虚拟机设置,选择"硬盘"→点击"扩展";
  2. 输入目标容量(如原130G→180G,增加50G),点击"确认";
  3. 启动Ubuntu虚拟机,执行df -h确认当前根分区容量(此时尚未变化)。

步骤2:调整磁盘分区(2种方式)

Ubuntu的LVM物理卷通常位于扩展分区(sda2)内的逻辑分区(sda5),需先扩展外层分区,再扩展内层分区。

方式1:命令行工具parted(推荐)
  1. 查看当前分区表:

    bash 复制代码
    sudo parted /dev/sda p
  2. 进入parted交互模式,扩展扩展分区(sda2):

    bash 复制代码
    sudo parted /dev/sda
    (parted) resizepart 2  # 选择扩展分区sda2
    (parted)  # 提示"End?"时直接按回车(使用磁盘最大扇区)或者增加扩展的size
  3. 扩展逻辑分区(sda5,LVM物理卷):

    bash 复制代码
    (parted) resizepart 5  # 选择逻辑分区sda5
    (parted)  # 提示"End?"时直接按回车(使用sda2的最大空间)或者增加扩展的size
    (parted) q  # 退出parted
方式2:图形化工具GParted(适合可视化操作)

若分区处于挂载状态(如根分区),需从Ubuntu Live CD启动(选择"试用Ubuntu"),再执行:

  1. 打开GParted,顶部下拉选择/dev/sda
  2. 选中sda2(扩展分区)→点击"调整大小/移动"→拖至磁盘最大空间;
  3. 选中sda5(LVM物理卷)→点击"调整大小/移动"→拖至sda2的最大空间;
  4. 点击顶部"应用"(绿色对勾)执行分区调整。

步骤3:LVM空间同步(核心!解决df不识别问题)

分区扩展后,需通过LVM工具将空间传递到根分区:

  1. 更新物理卷(PV):让LVM识别sda5的扩展空间

    bash 复制代码
    sudo pvresize /dev/sda5
  2. 查看卷组(VG)空闲空间:确认新增空间已进入卷组

    bash 复制代码
    sudo vgdisplay ubuntu--vg

    重点看Free PE / Size项,会显示分区扩展后新增的空闲空间。

  3. 扩展逻辑卷(LV):将空闲空间分配给根逻辑卷

    bash 复制代码
    # 扩展指定容量(如50G)
    sudo lvextend -L +50G /dev/mapper/ubuntu--vg-root
    
    # 或使用卷组全部空闲空间(推荐)
    sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-root

步骤4:更新文件系统

让系统识别逻辑卷的新增空间:

bash 复制代码
# 适用于ext4文件系统(Ubuntu默认)
sudo resize2fs /dev/mapper/ubuntu--vg-root

# 若为XFS文件系统,执行:
# sudo xfs_growfs /dev/mapper/ubuntu--vg-root

步骤5:验证结果

执行df -h,查看根分区(/)容量是否已更新。

四、常见问题处理

  1. sda2无法调整大小

    原因:分区处于挂载状态;

    解决:从Ubuntu Live CD启动后再调整。

  2. GParted扩展后df无变化

    原因:未执行LVM同步步骤;

    解决:重新执行pvresizelvextendresize2fs

  3. LVM空闲空间不足

    原因:分区未真正扩展;

    解决:重新执行步骤2的分区调整,再同步PV。

总结

VMware+Ubuntu+LVM的扩容核心是"虚拟机磁盘→分区→LVM→文件系统"的逐层同步,其中LVM步骤是最容易遗漏的环节(也是解决"df不识别空间"的关键)。操作前务必备份数据,遇到分区挂载限制时,优先使用Ubuntu Live CD启动。

相关推荐
maosheng11461 天前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken1 天前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2911 天前
Linux 信号详解
linux·运维·网络
放飞梦想C1 天前
CPU Cache
linux·cache
Hoshino.411 天前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK1 天前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben1 天前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
播播资源1 天前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry1 天前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的1 天前
Docker数据卷管理及优化
运维·docker·容器·eureka