我知道有两种类型的虚拟机映像,一般化和专业化。
如果操作系统已通用 /取消配置,则必须关闭虚拟机才能将其捕获为VM映像。将VM捕获为VM映像后,将自动删除虚拟机。
如果操作系统专用,则可以在虚拟机运行或关闭时捕获虚拟机。捕获的虚拟机保持不变。如果需要应用程序一致性或跨磁盘捕获,我们建议在捕获VM映像之前关闭虚拟机。
这里我试图捕获图像而不关闭VM(专业化)。 我有以下代码使用PowerShell捕获图像。
Save-AzureRmVMImage -ResourceGroupName $rgame -VMName $vmname -DestinationContainerName $container -VHDNamePrefix $vhdname
但上面的代码会抛出错误,如下所示
Save-AzureRmVMImage : Capture operation cannot be completed because the VM is not generalized.
ErrorCode: OperationNotAllowed
ErrorMessage: Capture operation cannot be completed because the VM is not generalized.
StatusCode: 409
我发现我可以使用 Set-AzureRmVM
将VM设置为广义Set-AzureRmVM -ResourceGroupName 'CaptureVmImageRG' -Name 'CaptureVmImage' -Generalized
无论如何,我可以将VM设置为专业化并捕获图像。有人可以提供一个有效的Powershell命令来创建一个专门捕获正在运行的VM以备份'时间点'目的,或任何其他机制,例如资源探索者。
提前致谢。
答案 0 :(得分:1)