能否为现有Azure VM附加/分离OS磁盘?是否有直接或间接方法?
Azure虚拟机操作系统磁盘的附加与分离操作说明
可行性说明
可以对Azure虚拟机(VM)的操作系统(OS)磁盘进行附加或分离操作,但必须满足前提条件:操作时VM必须处于**已停止(解除分配)**状态,运行中的VM无法直接操作OS磁盘。
直接实现方法
1. 分离OS磁盘
- Azure门户操作:
- 找到目标VM,点击「停止」并确认解除分配。
- 进入VM的「磁盘」设置页面,选中OS磁盘,点击「分离」,确认后磁盘会变为独立的托管磁盘。
- Azure CLI命令:
# 停止并解除分配VM az vm stop --resource-group <你的资源组名称> --name <VM名称> az vm deallocate --resource-group <你的资源组名称> --name <VM名称> # 分离OS磁盘 az vm disk detach --resource-group <你的资源组名称> --vm-name <VM名称> --name <OS磁盘名称> - PowerShell命令:
# 获取VM对象 $vm = Get-AzVM -ResourceGroupName <你的资源组名称> -Name <VM名称> # 停止并解除分配VM Stop-AzVM -ResourceGroupName <你的资源组名称> -Name <VM名称> -Force # 移除OS磁盘关联并更新VM $vm.StorageProfile.OsDisk = $null Update-AzVM -ResourceGroupName <你的资源组名称> -VM $vm
2. 附加OS磁盘
- Azure门户操作:
- 确保目标VM处于停止解除分配状态。
- 进入VM的「磁盘」设置页面,点击「添加磁盘」,选择「OS磁盘」类型,从可用列表中选中目标磁盘(需未被占用、OS类型与VM兼容),确认添加。
- Azure CLI命令:
# 确保VM处于停止解除分配状态 az vm stop --resource-group <你的资源组名称> --name <VM名称> az vm deallocate --resource-group <你的资源组名称> --name <VM名称> # 附加OS磁盘,指定OS类型(Windows/Linux) az vm disk attach --resource-group <你的资源组名称> --vm-name <VM名称> --name <目标OS磁盘名称> --os-type <Windows/Linux> - PowerShell命令:
# 获取VM和目标磁盘对象 $vm = Get-AzVM -ResourceGroupName <你的资源组名称> -Name <VM名称> $disk = Get-AzDisk -ResourceGroupName <你的资源组名称> -Name <目标OS磁盘名称> # 停止并解除分配VM Stop-AzVM -ResourceGroupName <你的资源组名称> -Name <VM名称> -Force # 设置OS磁盘并更新VM Set-AzVMOSDisk -VM $vm -ManagedDiskId $disk.Id -CreateOption Attach -OsType <Windows/Linux> Update-AzVM -ResourceGroupName <你的资源组名称> -VM $vm
间接实现方法
如果需要在保留原VM运行状态的前提下复用或更换OS磁盘,可采用以下流程:
- 对目标OS磁盘创建快照,通过快照生成新的托管磁盘。
- 将新生成的磁盘作为OS磁盘附加到其他处于停止解除分配状态的VM。
- 若要替换原VM的OS磁盘,需先停止并解除分配原VM,分离旧OS磁盘后再附加新磁盘。
注意:附加的OS磁盘需与VM硬件配置兼容(如磁盘类型匹配VM存储账户、OS架构与VM CPU一致),且未被其他资源占用。
内容的提问来源于stack exchange,提问作者Talang_madave
相关产品推荐
相关产品推荐

