使用 Azure CLI 更改由 Azure VM 使用的 OS 磁盘

适用于:✔️ Linux VM ✔️ 灵活规模集

如果有现有 VM,但希望将磁盘交换为备份磁盘或其他 OS 磁盘,则可使用 Azure CLI 交换 OS 磁盘。 无需删除和重新创建 VM。 甚至可在另一资源组中使用托管磁盘,只要该磁盘尚未使用。

不需要停止\解除分配 VM。 可将该托管磁盘的资源 ID 替换为其他托管磁盘的资源 ID。

请确保 VM 大小和存储类型与要附加的磁盘兼容。 例如,如果要使用的磁盘位于高级存储中,则 VM 需要能使用高级存储(如 DS 系列大小)。 这两个磁盘的大小也必须相同。 此外,不支持将未加密的 VM 与加密的 OS 磁盘混合使用。 如果 VM 不使用 Azure 磁盘加密,则要交换的 OS 磁盘不应使用 Azure 磁盘加密。 如果磁盘使用磁盘加密集,则这两个磁盘应属于同一个磁盘加密集。

本文需要 Azure CLI 2.0.25 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

使用 az disk list 获取资源组中的磁盘列表。

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

(可选)在交换磁盘之前,使用 az vm stop 停止\解除分配 VM。

az vm stop \
   -n myVM \
   -g myResourceGroup

使用 az vm update 以及新磁盘的完整资源 ID 获取 --osdisk 参数

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

使用 az vm start 重启 VM:

az vm start \
   -n myVM \
   -g myResourceGroup

后续步骤

要创建磁盘副本,请参阅拍摄磁盘快照