VMware Workstation 快照恢复后,软件消失与空间占用的真相
在使用 VMware Workstation17.6.2(只研究了这个版本) 搭建虚拟机时,“快照” 功能无疑是很多人的 “定心丸”—— 它能快速保存虚拟机某一时刻的完整状态,后续遇到系统故障、软件安装出错时,只需恢复快照就能回到之前的稳定状态。在已打开的虚拟机里装了一堆软件后,恢复到最初的 “干净快照”时虚拟机目录占用的空间会变小吗。
先搞懂:快照是什么?为什么恢复后软件会消失?
要解答 “软件消失” 的问题,得先明白快照的本质 —— 它不是简单复制虚拟机文件,而是记录虚拟机在某一时刻的 “状态差异”。
当你创建第一个 “干净快照” 时(比如刚装完系统、没装任何额外软件的状态),VMware 会做两件事:
保存当前虚拟机的核心配置(如内存数据、硬件参数);
将此时的虚拟磁盘(.vmdk 文件)标记为 “只读”,后续虚拟机的所有操作(比如安装软件、下载文件),都会写入一个新的 “增量.vmdk 文件” 中。
举个例子:
假设干净快照对应的基础.vmdk 文件是 10GB,你后续安装了 3GB 的办公软件、2GB 的开发工具,这些操作不会修改原来的 10GB 基础文件,而是生成一个 5GB 的增量.vmdk 文件。此时虚拟机的 “实际状态”,是基础文件 + 增量文件的叠加。
当你选择 “恢复到干净快照” 时
VMware 会执行一个关键操作:丢弃当前的增量.vmdk 文件,并重新创建新的增量.vmdk,当然它们的名字会一样(从肉眼看的话相当于重置了增量.vmdk),最初的基础.vmdk 文件依然作为仅可读文件。这就意味着,你之前通过增量文件记录的 “安装软件、保存文件” 等操作,全部被 “剥离/撤回” 了 —— 所以打开虚拟机后,软件自然消失,系统回到了刚创建快照时的干净状态。
当你选择删除了这个快照(而不是恢复)时
VMware 会执行一个关键操作:VMware 会执行物理合并,原本只读的基础磁盘会被重新标记为 “可写”,然后把增量磁盘中 “需要保留的数据”(如果有的话)写入基础磁盘,然后删除增量磁盘文件,只留基础磁盘。