Azure Powershell使用已有特殊化非托管磁盘创建ARM虚拟机

 

生成已有特殊化非托管磁盘的方法主要有如下两种:

1.使用StorageExplorer存储管理工具,复制特殊化磁盘到一个新的容器下

2.New Portal中删除虚拟机,默认vhd文件会保留在存储账号中

3.捕获虚拟机,但未进行过一般化

4.本地自定义上传的未进行过一般化的VHD文件

 

为了便于恢复,我们首先在虚拟机的Disk属性或者存储账号的VHDS容器里面查看并记录下系统盘和数据盘的URL

 

记录好系统盘和数据盘的URL(下面URL为测试URL,具体请参考实际):

OSDiskURLhttps://stoneh01acct.blob.core.chinacloudapi.cn/vhds/hlmrgcent652n2016810122825.vhd

 

安装和配置Azure Powershell的步骤请参考对应的安装文档。安装配置完成后,使用下面的命令进行创建(#为注释,忽略对应的说明):

 

#指定虚拟机名称

$vmname = "stonehVM03"

 

#指定资源组

$resourceGroup = "stoneh01"

 

#查看SubnetID

$vnet = Get-AzureRmVirtualNetwork -Name stoneh01Net -ResourceGroupName $resourceGroup

$subnet01 = Get-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -VirtualNetwork $vnet

 

#创建一个公网IP地址

$publicIP = New-AzureRmPublicIpAddress -Name piptest03 -ResourceGroupName $resourceGroup -Location "China East" -AllocationMethod Static -IpAddressVersion IPv4 –Force

 

#创建网卡

$NIC = New-AzureRmNetworkInterface -Name nictest03 -ResourceGroupName $resourceGroup -Location "China East" -SubnetId $subnet01.Id -PublicIpAddressId $publicIP.Id -PrivateIpAddress 10.0.1.9

 

#配置要使用的存储账号以及系统盘名称

$storage = Get-AzureRmStorageAccount -Name stoneh01acct -ResourceGroupName $resourceGroup

$osdname = $vmname + "_OSDisk"

$osdurl = "https://stoneh01acct.blob.core.chinacloudapi.cn/vhds/hlmrgcent652n2016810122825.vhd"

 

#生成虚拟机的配置

$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize Standard_A2 | Set-AzureRmVMOSDisk -Name $osdname -VhdUri $osdurl -CreateOption attach -Linux | Add-AzureRmVMNetworkInterface -Id $NIC.Id -Primary

 

#创建虚拟机

New-AzureRmVM -ResourceGroupName $resourceGroup -Location "China East" -VM $vmconfig

 

创建完成后,可以在虚拟机的磁盘属性中挂载数据磁盘

 

实测截图如下,供参考:

 

创建成功的虚拟机可以正常连接使用:

 

原文地址:https://www.cnblogs.com/stonehe/p/7561448.html