使用托管磁盘执行az vm create时提示存储配置文件无效错误
解决Azure CLI创建VM时的托管磁盘镜像错误
你遇到的错误根源是参数用法不匹配:az vm create的--image参数如果直接指向VHD路径,Azure会默认按非托管磁盘的逻辑处理,所以才会要求你补充--os-type和--use-unmanaged-disk参数。但你的源是托管磁盘,这种场景下需要用正确的参数来引用托管磁盘,下面提供两种可行的解决方案:
方案一:直接附加托管磁盘作为OS盘创建VM
这种方式适合快速基于现有托管磁盘创建单台VM,无需提前生成镜像。修改后的命令如下:
az vm create \ --name=colemick-nixosdev3 \ --resource-group=colemick-nixosdev3 \ --ssh-key-value="ssh-rsa ..." \ --size=Standard_D16s_v3 \ --attach-os-disk /subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/aznixos/providers/Microsoft.Compute/disks/nixos-image-16.09.1694.019dcc3-x86_64-linux \ --os-type Linux \ --os-disk-delete-option Delete
--attach-os-disk:指定要作为OS盘的托管磁盘完整资源ID(如果磁盘和VM在同一个资源组,也可以直接用磁盘名称)--os-type Linux:明确告知Azure这是Linux系统磁盘--os-disk-delete-option Delete:可选参数,指定删除VM时同时删除OS盘,可根据需求调整
方案二:先将托管磁盘转为自定义镜像,再用镜像创建VM
如果需要基于这个磁盘重复创建多台VM,先生成自定义镜像会更灵活:
第一步:创建自定义镜像
az image create \ --resource-group aznixos \ --name nixos-custom-image \ --os-type Linux \ --source /subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/aznixos/providers/Microsoft.Compute/disks/nixos-image-16.09.1694.019dcc3-x86_64-linux
第二步:用自定义镜像创建VM
az vm create \ --name=colemick-nixosdev3 \ --resource-group=colemick-nixosdev3 \ --ssh-key-value="ssh-rsa ..." \ --size=Standard_D16s_v3 \ --image /subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/aznixos/providers/Microsoft.Compute/images/nixos-custom-image
你可以根据实际需求选择其中一种方式,两种方案都能避开之前的参数错误问题。
内容的提问来源于stack exchange,提问作者colemickens
相关产品推荐
相关产品推荐

