备份过程中,虚拟机执行输出抛出:未能成功获取XXX.vmdk的局部变化块
可能原因
VMware CBT功能失效。

CBT生效只针对厚置备延迟置零磁盘与精简置备磁盘。如果您需要禁用CBT功能,且禁用操作不会生成对应的ctk文件时,建议您对此类虚拟机单独创建任务并执行完全备份。因为CBT失效时的增量备份实际是完全备份,如果完全备份的增备时间点有多个,恢复第N个增备时间点会花费N+1倍的时间。
解决方案一
当虚拟机CBT功能失效时,您可以尝试以下操作使CBT重新生效:
- 关闭目标虚拟机。
- 配置目标虚拟机。选中该虚拟机,右键单击 编辑设置 > 选项 > 高级 > 常规 > 配置参数。
图1 修改虚拟机配置参数
通过将“ctkEnabled”值设置为“false”,对虚拟机禁用CBT。
通过将附加到虚拟机的每个虚拟磁盘的“scsix:x.ctkEnabled”值设置为“false”,对附加的各个虚拟磁盘禁用CBT。其中,scsix:x是虚拟磁盘的SCSI控制器与SCSI设备ID。
- 在弹出的对话框中,将“ctkEnabled”与“scsix.x.ctkEnabled”的值从“true”修改为“false”。
图2 修改配置参数
删除虚拟机快照,需登录vSphere Web Client操作。如果登录ESXi Shell后,虚拟机工作目录下仍残留快照文件(.delta.vmdk),则彻底删除。
- 使用数据存储浏览器或ESXi Shell打开虚拟机的工作目录。
- 确保虚拟机的工作目录中不存在快照文件(.delta.vmdk)。
- 开启目标虚拟机。
- 关闭目标虚拟机。
- SSH连接虚拟化平台服务器,找到虚拟机所在目录,修改该虚拟机中的XXX.vmx文件,修改uuid.bios对应的值。
- 开启目标虚拟机。
- 关闭目标虚拟机。
- 将“ctkEnabled”与“scsix.x.ctkEnabled”的值从“false”修改为“true”。
- 开启目标虚拟机。
- 对原备份任务发起完全备份。