2017-07-27 70 views
0

我正在使用信息here在Azure上复制虚拟机。我无法摆脱第一步,因为我的存储配置文件空白。我从下面的命令中得不到任何东西。如果我删除查询,它会显示我的虚拟机信息。只查询storageProfile也不会打印任何内容。Azure:复制虚拟机:无存储配置文件

az vm show -n myVM -g myRG --query "storageProfile.osDisk.unmanagedDisk.id" 

我的VM有一个基于blob的VHD。想知道我是否在吠叫错误的树。请原谅我的无知,因为我对Azure相当陌生,而且信息量有点过大。

+0

是否要复制现有的虚拟机?这是一个非托管磁盘? –

+0

这是正确的杰森。 –

回答

1

我的VM有一个基于blob的VHD。

根据您的描述,您的VM使用Azure blob,非托管磁盘创建。这样 不受管理的磁盘虚拟机的信息,有没有非托管的财产:

"osDisk": { 
     "caching": "ReadWrite", 
     "createOption": "fromImage", 
     "diskSizeGb": null, 
     "encryptionSettings": null, 
     "image": null, 
     "managedDisk": null, 
     "name": "jasonvm", 
     "osType": "Linux", 
     "vhd": { 
     "uri": "https://vmdisks909.blob.core.windows.net/vhds/jasonvm20170727093048.vhd" 
     } 
    } 

所以我们可以使用这个脚本来显示VHD URI信息:

az vm show -g vm -n jasonvm --query "storageProfile.osDisk.vhd.uri" -o tsv 

另外,如果你想复制这VHD到另一个Azure存储帐户,我们可以使用以下脚本:

# Copy blob from source account to destination account (destcontainer must exist) 
az storage blob copy start \ 
    --account-name destaccountname \ 
    --account-key destaccountkey \ 
    --destination-blob destfile.vhd \ 
    --destination-container destcontainer \ 
    --source-uri https://sourceaccountname.blob.core.windows.net/sourcecontainer/sourcefile.vhd 

有关将blob复制到anot的更多信息她的容器请参考article

+0

即使我拥有有效的访问密钥,我仍然无法验证我的复制命令。它需要一个'Authorization'标题,我希望这个cli会照顾好? '服务器未能认证请求。确保授权标头的值正确形成,包括签名.' –

+0

下载blob对我来说不适用,因为它正在使用中。 '这个blob正在被系统使用.'。将关闭虚拟机使其可下载?我似乎无法找出另一种方法来断开它。我只需要克隆服务器,因此需要能够将所有内容都恢复原样。 –

+0

@AnshulKoka因为这个vhd在使用,我们应该关闭这个虚拟机,然后复制它:) –