Powershell
Azure VM 更改作業系統磁碟
我在 RM 中創建了一個 Azure VM,並刪除了 VM 和組件,期望 OSDisk 位於高級儲存帳戶 (Blob) 中。現在我想創建一個新的虛擬機並將作業系統磁碟附加到新的虛擬機上。
我嘗試將 Set-AzureRmVmOsDisk 用於現有 VM。那是行不通的。我還嘗試創建一個新 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" },
沒有錯誤,命令提示表明更改已完成。但是當再次從VM呼叫資訊時,仍然有舊的vhd
要使用現有磁碟創建新 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
如果您需要非 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 被保留,因為當時沒有配置其他虛擬機。)然後,啟動虛擬機。就是這樣。
對 SharePoint 場沒有影響。