三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

别再乱删快照了!VMware Workstation Pro里给Ubuntu虚拟机扩容的正确姿势(附完整流程)

别再乱删快照了!VMware Workstation Pro里给Ubuntu虚拟机扩容的正确姿势(附完整流程)

VMware虚拟机磁盘扩容避坑指南:从快照管理到Ubuntu分区全流程解析

刚接触虚拟机的开发者常会遇到一个尴尬场景:明明给Ubuntu虚拟机分配了50GB磁盘,用着用着却发现空间告急。这时本能反应就是去VMware Workstation Pro里调整磁盘大小,却发现"扩展"按钮灰显无法操作——这个看似简单的需求背后,其实暗藏着一套需要严格遵循的操作链条。本文将拆解三个关键阶段:快照机制解析安全扩容操作Ubuntu分区扩展,并穿插新手容易踩坑的实战案例。

1. 快照机制与磁盘扩容的隐藏关联

许多用户在尝试扩容时遇到的第一个障碍就是VMware界面中的灰色扩展按钮。这种现象的根源在于虚拟机快照机制与磁盘结构的深度耦合。快照本质上是通过写时复制(Copy-on-Write)技术保存磁盘状态,每个快照都会生成增量磁盘文件(文件名带序号如vmname-000001.vmdk)。当存在快照时,原始磁盘文件(vmname.vmdk)变为只读,所有新写入数据都记录在增量文件中。

这种设计带来两个直接影响:

  • 磁盘链式结构:多个快照会形成依赖链,扩容操作需要修改基础磁盘文件
  • 空间占用翻倍:快照越多,磁盘碎片和冗余数据越严重

实际操作中常见的错误认知包括:

  • 认为删除最新快照即可(实际上需要删除所有快照)
  • 误将"恢复到快照"等同于删除快照
  • 忽视快照对性能的影响(建议日常使用时保持无快照状态)

提示:执行关键操作前,建议通过vmware-vdiskmanager -R /path/vmname.vmdk检查磁盘链完整性

2. 安全扩容五步法:从准备到验证

2.1 前置检查清单

在开始扩容前,需要完成以下准备工作:

检查项操作命令/位置预期结果
快照状态VMware菜单栏"快照>快照管理器"显示"No Snapshots"
磁盘类型虚拟机设置>硬盘>高级类型需为"SCSI"或"SATA"
当前空间Ubuntu终端执行df -h记录各分区使用率
备份完整性手动复制整个虚拟机目录验证文件大小变化

2.2 详细操作流程

  1. 删除所有快照

    • 通过"快照管理器"逐个删除(注意:合并过程可能耗时)
    • 检查虚拟机目录,确认仅剩vmname.vmdkvmname-flat.vmdk
  2. 执行磁盘扩展

    # 可选:通过命令行扩展(需关闭虚拟机) vmware-vdiskmanager -x 100GB /path/vmname.vmdk
    • 图形界面操作路径:虚拟机设置>硬盘>扩展
    • 建议每次扩展不超过原大小的50%(如50GB→75GB)
  3. 分区调整前检查

    # 查看新识别的空间 sudo fdisk -l | grep "Disk /dev/sd" # 对比扩容前后输出

3. Ubuntu分区扩展实战技巧

3.1 图形化工具与命令行对比

推荐使用gparted工具进行操作,但需注意:

  • 安装命令:sudo apt install gparted
  • 必须从Live CD启动或卸载目标分区
  • 扩展顺序:物理卷→卷组→逻辑卷→文件系统

3.2 LVM与非LVM环境处理

情况一:标准分区

sudo parted /dev/sda (parted) resizepart 2 100% # 调整分区2到最大 (parted) quit sudo resize2fs /dev/sda2 # 扩展文件系统

情况二:LVM逻辑卷

sudo pvresize /dev/sda3 # 扩展物理卷 sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

4. 扩容后的优化与监控

完成扩容后,建议实施以下优化措施:

  • TRIM支持

    sudo fstrim -av # 手动执行 # 或添加cron任务 sudo systemctl enable fstrim.timer
  • 空间监控脚本

    #!/bin/bash THRESHOLD=90 CURRENT=$(df / --output=pcent | tail -1 | tr -d '% ') [ $CURRENT -ge $THRESHOLD ] && \ echo "Warning: Disk usage $CURRENT%" | mail -s "空间告警" admin@example.com
  • 快照策略调整

    • 避免在磁盘高负载时创建快照
    • 为快照单独设置存储路径(非系统盘)
    • 定期检查快照占用空间:du -sh *.vmdk

实际项目中遇到过因快照堆积导致磁盘链断裂的情况,最终通过vmware-vdiskmanager -k压缩才恢复。建议将本文流程保存为检查清单,每次扩容前逐项核对。

← 返回列表