注意:这是一个 Azure ARM 问题,而不是 Azure 服务管理问题。
我在存储帐户中有 2 个 vhd - machine-os.vhd 和 machine-data.vhd。我可以使用 PowerShell ARM cmdlet 创建具有现有操作系统 vhd 的 VM,但无法弄清楚如何附加现有数据 vhd。我发现的所有样本都创建了 EMPTY 数据磁盘 - 但我想将现有的 vhd 附加为数据磁盘。
我试过像这样使用createOption attach
开关Add-AzureVMDataDisk
:
$vm = New-AzureVMConfig ...
$vm = Add-AzureVMDataDisk -VM $vm -VhdUri $existingDiskUri -Name "machine-data.vhd" -Caching ReadOnly -CreateOption attach -DiskSizeInGB 200
但是,操作失败并显示:
Blob https://x.blob.core.windows.net/vhds/machine-data.vhd already exists. Please provide a different blob URI to create a new blank data disk 'machine-data.vhd.'
我必须指定DiskSizeInGB
命令Add-AzureVMDataDisk
才能工作(这看起来很奇怪)。我尝试为 指定SourceImageUri
一个不同的名称VhdUri
,根据文档,应该将 vhd 从 sourceImageUri 复制到 vhdUri 并附加它。尝试createOption fromImage
失败,因为“您无法使用源图像 uri 指定大小”。但是,cmdlet 的 size 参数是强制性的,所以我不知道如何指定 sourceUri 而不是 size。
这个 SO question提出了一个类似的问题(尽管我没有得到相同的错误),但是答案中的链接显示了一个带有 EMPTY 数据磁盘的模板,这没有帮助。
有趣的是,我尝试将磁盘从 Azure 门户添加到 VM - 您必须在此处指定名称和 URI,但操作总是失败并出现一些奇怪的 json 解析错误。我似乎无法正确获取数据磁盘的 uri。