Alterar o disco do SO utilizado por uma VM do Azure com o PowerShell

Aplica-se a: ✔️ VMs do Linux VMs ✔️ do Windows Conjuntos ✔️ de dimensionamento flexíveis

Se tiver uma VM existente, mas quiser trocar o disco por um disco de cópia de segurança ou outro disco do SO, pode utilizar Azure PowerShell para trocar os discos do SO. Não tem de eliminar e recriar a VM. Pode até utilizar um disco gerido noutro grupo de recursos, desde que ainda não esteja a ser utilizado.

A VM não precisa de ser parada\desalocada. O ID de recurso do disco gerido pode ser substituído pelo ID de recurso de um disco gerido diferente.

Certifique-se de que o tamanho e o tipo de armazenamento da VM são compatíveis com o disco que pretende anexar. Por exemplo, se o disco que pretende utilizar estiver no Armazenamento Premium, a VM tem de ser capaz de Armazenamento Premium (como um tamanho da série DS). Ambos os discos também têm de ter o mesmo tamanho. Além disso, certifique-se de que não está a misturar uma VM não encriptada com um disco de SO encriptado, o que não é suportado. Se a VM não utilizar o Azure Disk Encryption, o disco do SO que está a ser trocado não deve estar a utilizar o Azure Disk Encryption. Se os discos estiverem a utilizar Conjuntos de Encriptação de Discos, ambos os discos deverão pertencer ao mesmo conjunto de Encriptação de Discos.

Obter uma lista de discos num grupo de recursos com Get-AzDisk

Get-AzDisk -ResourceGroupName myResourceGroup | Format-Table -Property Name

Quando tiver o nome do disco que pretende utilizar, defina-o como o disco do SO da VM. Este exemplo para/desaloca a VM com o nome myVM e atribui o disco com o nome newDisk como o novo disco do SO.

# Get the VM 
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM 

# (Optional) Stop/ deallocate the VM
Stop-AzVM -ResourceGroupName myResourceGroup -Name $vm.Name -Force

# Get the new disk that you want to swap in
$disk = Get-AzDisk -ResourceGroupName myResourceGroup -Name newDisk

# Set the VM configuration to point to the new disk  
Set-AzVMOSDisk -VM $vm -ManagedDiskId $disk.Id -Name $disk.Name 

# Update the VM with the new OS disk
Update-AzVM -ResourceGroupName myResourceGroup -VM $vm 

# Start the VM
Start-AzVM -Name $vm.Name -ResourceGroupName myResourceGroup

Próximos passos

Para criar uma cópia de um disco, veja Instantâneo de um disco.