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启动。

相关推荐
啊吧怪不啊吧32 分钟前
UU远程协助迎来升级!第一期更新实测
运维·服务器·远程工作
C_心欲无痕6 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜6007 小时前
国科大2025操作系统高级教程期末回忆版
linux
HIT_Weston7 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng20188 小时前
Linux下Beyond Compare过期
linux·运维·服务器
喵叔哟8 小时前
20.部署与运维
运维·docker·容器·.net
HIT_Weston8 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式8 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu
码农小韩10 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
wdfk_prog10 小时前
[Linux]学习笔记系列 -- [fs]seq_file
linux·笔记·学习