如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上

本文内容

适用场景

解决方案

适用场景

当出现虚拟机无法启动等情况时,需要将虚拟机的 OS 磁盘挂载到其他虚拟机上进行问题诊断或者数据恢复。使用托管磁盘的虚拟机无法通过存储浏览器等工具进行管理,只能通过 PowerShell 来操作。

Note

本文仅适用于使用托管磁盘的虚拟机。

解决方案

首先,为了避免影响现有的虚拟机,我们需要对虚拟机的托管磁盘执行一个快照,然后通过该快照来生成一个托管磁盘挂载到其他虚拟机上。

登陆Azure 门户, 浏览托盘磁盘所在的资源组,在资源组里点击托管磁盘,截图如下:

如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上_第1张图片

点击上方图中的 "Create Snapshot",然后填入名字并选择对应的资源组,如下图所示:

如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上_第2张图片

快照创建完成后,我们通过该快照来生成一块托管磁盘。

PowerShell复制

#准备基本信息PS C:\windows\system32>$resourceGroupName="<资源组名称>"PS C:\windows\system32>$snapshotName="<快照名称>"PS C:\windows\system32>$diskName="<磁盘名称>"PS C:\windows\system32>$diskSize='<磁盘大小,单位为 GB>'PS C:\windows\system32>$storageType="<存储类型,可选 StandardLRS 或 PremiumLRS>"PS C:\windows\system32>$snapshot=Get-AzureRmSnapshot-ResourceGroupName$resourceGroupName-SnapshotName$snapshotName#生成托管磁盘并将其赋予到变量 datadisk 中以备后用PS C:\windows\system32>$diskConfig=New-AzureRmDiskConfig-AccountType$storageType-Location$location-CreateOptionCopy-SourceResourceId$snapshot.IdPS C:\windows\system32>$datadisk=New-AzureRmDisk-Disk$diskConfig-ResourceGroupName$resourceGroupName-DiskName$diskName

将创建好的托管磁盘挂载到虚拟机上。请注意托管磁盘只能挂载到使用托管磁盘的虚拟机上。

PowerShell复制

#选择需要挂载到的虚拟机上PS C:\windows\system32>$vm=Get-AzureRmVM-Name“<挂载该磁盘的 VM 名字>”-ResourceGroupName"<资源组名称>"#配置虚拟机挂载托管磁盘,注意 -Lun 部分的数字不能与现有虚拟机上挂载的数据磁盘重复,查看该值的方法见下方截图PS C:\windows\system32>$vm=Add-AzureRmVMDataDisk-VM$vm-Name$diskName-CreateOptionAttach-ManagedDiskId$datadisk.Id-Lun1#更新虚拟机配置,执行挂载操作PS C:\windows\system32>Update-AzureRmVM-VM$vm-ResourceGroupName$resourceGroupNameRequestId IsSuccessStatusCode StatusCode ReasonPhrase--------------------------------------------------True        OK          OK

如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上_第3张图片

最后在虚拟机操作系统上挂载该磁盘即可。

立即访问http://market.azure.cn

你可能感兴趣的:(如何将使用托管磁盘虚拟机的 OS 盘挂载到其他虚拟机上)