image - 如何使用 power shell 捕获 VM 创建类型为 "Specialized"的 Azure VM 镜像?或如何创建 RM VM 的专用镜像?

标签 image azure virtual-machine azure-resource-manager azure-powershell

我知道虚拟机镜像有两种类型:通用型和专用型。

  1. 如果操作系统已通用化/取消配置,则必须关闭虚拟机才能将其捕获为 VM 镜像。一旦 VM 被捕获为 VM 镜像,该虚拟机将自动删除。

  2. 如果操作系统是专用,则可以在虚拟机运行或关闭时捕获虚拟机。捕获的虚拟机保持不变。如果需要应用程序一致或跨磁盘捕获,我们建议在捕获 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 命令来创建正在运行的虚拟机的专门捕获以用于备份“时间点”目的,或任何其他机制,例如资源浏览器。

提前致谢。

最佳答案

命令 Save-AzureRmVMimage 和 Set-AzureRmVM 用于捕获通用图像。在运行这两个 cmdlet 之前,您应该登录到 VM 并使用 Sysprep 准备硬盘。

在 ARM 模式下,对于 Specialized 图像,我认为您不需要使用 cmdlet 来捕获图像。 您可以将 VHD 复制到另一个存储帐户。复制的 VHD 是专用镜像。您可以使用 VHD 重新创建包含您的数据的新虚拟机。 据我所知,您最好在VM停止时复制VHD。更多信息请引用article

我认为使用 Azure 恢复服务保管库是更好的解决方案。 Azure 支持自动备份您的 VM,无需停止您的 VM。您可以轻松恢复虚拟机。更多信息请引用article .

关于image - 如何使用 power shell 捕获 VM 创建类型为 "Specialized"的 Azure VM 镜像?或如何创建 RM VM 的专用镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259666/

相关文章:

image - 将绘图保存到 matlab : difference between saveas and print 中的图像文件中

azure - 如何增加 Azure Analytics Applicationinsights 中分析查询结果的限制

c# - "Common Language Runtime detected an invalid program"位于带有 CaSTLe Windsor 的 Azure Web 角色上

Azure - 仅允许访问单个国家/地区部署在 Azure 应用服务上的网站

ruby - 创建/编辑 Vagrant base box 以预安装 Recipe

javascript - 绘制到 Canvas 或用作图像源时缺少 SVG 图像和图案

jquery - 多页 jQuery 图片库

ruby - 为什么一个 Ruby 程序/进程会产生多个线程?

javascript - 单图不同背景

azure - 由于 ssl 错误,无法在 azure vm 上下载包含 Chocolatey 的软件包