使用 CLI 更改由 Azure VM 使用的 OS 磁盘Change the OS disk used by an Azure VM using the CLI

如果有现有 VM,但希望将磁盘交换为备份磁盘或其他 OS 磁盘,则可使用 Azure CLI 交换 OS 磁盘。If you have an existing VM, but you want to swap the disk for a backup disk or another OS disk, you can use the Azure CLI to swap the OS disks. 无需删除和重新创建 VM。You don't have to delete and recreate the VM. 甚至可在另一资源组中使用托管磁盘,只要该磁盘尚未使用。You can even use a managed disk in another resource group, as long as it isn't already in use.

需要停止/取消分配 VM,然后才可将该托管磁盘的资源 ID 替换为其他托管磁盘的资源 ID。The VM does need to be stopped\deallocated, then the resource ID of the managed disk can be replaced with the resource ID of a different managed disk.

请确保 VM 大小和存储类型与要附加的磁盘兼容。Make sure that the VM size and storage type are compatible with the disk you want to attach. 例如,如果要使用的磁盘位于高级存储中,则 VM 需要能使用高级存储(如 DS 系列大小)。For example, if the disk you want to use is in Premium Storage, then the VM needs to be capable of Premium Storage (like a DS-series size).

本文需要 Azure CLI 2.0.25 或更高版本。This article requires Azure CLI version 2.0.25 or greater. 运行 az --version 即可查找版本。Run az --version to find the version. 如果需要进行安装或升级,请参阅安装 Azure CLIIf you need to install or upgrade, see Install Azure CLI.

使用 az disk list 获取资源组中的磁盘列表。Use az disk list to get a list of the disks in your resource group.

az disk list \
   -g myResourceGroupDisk \
   --query '[*].{diskId:id}' \
   --output table

在交换磁盘之前,使用 az vm stop 停止\取消分配 VM。Use az vm stop to stop\deallocate the VM before swapping the disks.

az vm stop \
   -n myVM \
   -g myResourceGroup

使用 az vm update 以及新磁盘的完整资源 ID 获取 --osdisk 参数Use az vm update with the full resource ID of the new disk for the --osdisk parameter

az vm update \
   -g myResourceGroup \
   -n myVM \
   --os-disk /subscriptions/<subscription ID>/resourceGroups/swap/providers/Microsoft.Compute/disks/myDisk 

使用 az vm start 重启 VM:Restart the VM using az vm start.

az vm start \
   -n myVM \
   -g myResourceGroup

后续步骤Next steps

要创建磁盘副本,请参阅拍摄磁盘快照To create a copy of a disk, see Snapshot a disk.