我在 RM 中创建了一个 Azure VM,并删除了 VM 和组件,除了高级存储帐户 (Blob) 中的 OSDisk。现在我想创建一个新的 VM,并将 OS Disk 附加到新 VM。
我尝试对现有 VM 使用 Set-AzureRmVmOsDisk。这不起作用。我还尝试创建一个新的 VM 并修改 OSDisk。但出现了错误:
New-AzureRmVM : Changing property 'osDisk.name' is not allowed.
关于如何创建新的 VM 并将旧 VM 中的 OS .vhd 分配为新系统磁盘,您有什么想法吗?
编辑:我尝试了以下操作:
$VM = Get-AzureRmVM -Name "VM01" -ResourceGroupName "TestResource1"
Set-AzureRmVMOSDisk -VM $VM -Name "**VM123456**.vhd" -VhdUri "https://vm01disk.blob.core.windows
.net/vhds/**VM123456**.vhd" -CreateOption Attach
输出显示:
"osDisk": {
"osType": null,
"encryptionSettings": null,
"name": "VM123456.vhd",
"vhd": {
"uri": "https://vm01disk.blob.core.windows.net/vhds/**VM123456**.vhd"
},
运行命令后:
Get-AzureRmVM -Name "VM01" -ResourceGroupName "TestResource1"
我再次看到:
"osDisk": {
"osType": "Windows",
"encryptionSettings": null,
"name": "VM01",
"vhd": {
"uri": "https://vm01disk.blob.core.windows.net/vhds/**VMoldID**.vhd"
},
没有错误,命令提示符表明更改已完成。但是当再次从虚拟机调用信息时,仍然有旧的 vhd
答案1
要使用现有磁盘创建新的 VM,您应该能够使用以下 PowerShell 来执行此操作(这很简化,我没有添加任何 NICS 等)。
$vm = New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize
$osDiskUri = "https://nameofyourstorageaccount.blob.core.windows.net/vhds/nameofyourvhd.vhd"
$vm = Set-AzureRMVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Windows
New-AzureRMVM -ResourceGroupName $rgName -Location $location -VM $vm
答案2
如果您需要非 power shell 方式来解决这个问题,那么下面的方法对我有用。
我使用新的 Azure 门户意外地从 SharePoint 2013 场中删除了一个 SQL Server VM。磁盘 VHD 文件仍然像往常一样完整地保存在我的存储帐户的 blob 存储中。
下载 CloudXplorer。启动 > 管理帐户 > Azure Blob 存储帐户。输入存储帐户名称和密钥(您将从 Azure 门户获取)。您将看到所有 VHD 文件等。找到与您删除的 VM 名称匹配的文件。选择您要还原到的最近的一个。记下它的全名 (*.vhd)。然后,右键单击它并选择中断租约。
返回 Azure 门户。删除 NIC 并取消关联公共静态 IP。创建一个具有与之前完全相同配置的新 VM。准备就绪后,它将配置新的 NIC 和新的 OS 磁盘。停止 VM 并转到属性中的“磁盘”部分。记下正在使用的 VHD 文件的完整 URL。返回 CloudXplorer 并点击刷新。搜索已创建的新 VHD 并复制其名称。删除它。然后用您复制的名称重命名原始文件。
返回 Azure 门户。将公共静态 IP 与新 VM 的新创建的 NIC 关联。(在我的情况下,内部 IP 被保留,因为当时没有配置其他 VM。)然后,启动 VM。就是这样。
对 SharePoint 场没有影响。
答案3
如果您使用 Azure 门户(新门户),则很简单。转到磁盘并从中创建映像。然后从该快照映像创建新的 VM。