Anexar um disco não gerenciado a uma VM para reparo offline

Aplica-se a: ✔️ Windows VMs

Alguns cenários de solução de problemas para VMs (máquinas virtuais) do Windows, como quando uma VM não é iniciada, exigem que você repare seu disco do sistema operacional offline. Este artigo descreve como você pode executar esse tipo de reparo offline quando o disco do sistema operacional com falha não é gerenciado.

Determinar se o disco do sistema operacional é gerenciado ou não gerenciado

Portal do Azure

Abra a folha Visão geral da VM. Se o disco do sistema operacional não for gerenciado, uma faixa informativa indicará que a VM não está usando discos gerenciados.

Captura de tela de uma mensagem de faixa no portal do Azure indicando que um V M não está usando discos gerenciados.

Além disso, a folha Visão geral do disco do sistema operacional acrescenta "(não gerenciado)" ao nome do disco se o disco não for gerenciado, conforme mostrado abaixo:

A captura de tela mostra a palavra não gerenciado acrescentada ao nome de um V M no portal do Azure.

Se o disco for gerenciado, a folha Visão geral do disco do sistema operacional exibirá um campo Gerenciado por , conforme mostrado abaixo:

Captura de tela da folha de visão geral de um disco no portal do Azure, indicando que o disco é gerenciado por um VM V.

PowerShell

Você pode verificar se o disco do sistema operacional não é gerenciado digitando o comando a seguir. (Certifique-se de substituir "MyResourceGroup" pelo nome do grupo de recursos e "MyVM" pelo nome da VM.)

(get-azvm -ResourceGroupName MyResourceGroup -Name MyVM).StorageProfile.OsDisk

Se o disco não for gerenciado, nenhum valor aparecerá na saída ao lado de ManagedDisk, como no exemplo a seguir:

OsType                  : Windows
EncryptionSettings      :
Name                    : MyVM-Disk1
Vhd                     : Microsoft.Azure.Management.Compute.Models.VirtualHardDisk
Image                   :
Caching                 : ReadWrite
WriteAcceleratorEnabled :
DiffDiskSettings        :
CreateOption            : FromImage
DiskSizeGB              : 127
ManagedDisk             :

Se o disco for um disco gerenciado, você verá um valor na saída ao lado de ManagedDisk, como no exemplo a seguir:

OsType                  : Windows
EncryptionSettings      :
Name                    : MyVM2-Disk1
Vhd                     :
Image                   :
Caching                 : ReadWrite
WriteAcceleratorEnabled :
DiffDiskSettings        :
CreateOption            : FromImage
DiskSizeGB              :
ManagedDisk             : Microsoft.Azure.Management.Compute.Models.ManagedDiskParameters

Interface de linha de comando do Azure (CLI do Azure)

Você pode usar o comando az vm show com a consulta acrescentada "storageProfile.osDisk.managedDisk" para determinar se o disco tem discos gerenciados, como no exemplo a seguir:

az vm show -n MyVM -g MyResourceGroup --query "storageProfile.osDisk.managedDisk"

Se os discos não forem gerenciados, o comando não gerará nenhuma saída. Se os discos forem gerenciados, ele gerará uma saída como no exemplo a seguir:

{
  "diskEncryptionSet": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/disks/MyVm_OsDisk_1",
  "resourceGroup": "MyResourceGroup",
  "storageAccountType": null
}

Criar uma cópia do disco do sistema operacional não gerenciado anexado à VM de origem (com falha)

  1. No portal do Azure, pare a VM de origem cujo disco do sistema operacional não é gerenciado.

  2. No computador local, baixe, instale e inicie o Gerenciador de Armazenamento do Microsoft Azure. Forneça suas credenciais do Azure quando solicitado.

  3. No painel de navegação do Gerenciador de Armazenamento, expanda a assinatura apropriada.

  4. Selecione a conta de armazenamento na qual o VHD está localizado e, em seguida, selecione o contêiner apropriado para o disco. Por padrão, os discos do sistema operacional não gerenciados são armazenados no contêiner vhds (concedido ).

    Captura de tela do Gerenciador de Armazenamento do Azure com o contêiner de contas de armazenamento e o contêiner alugado v h d s realçados na árvore de navegação.

  5. No painel direito, selecione o VHD anexado à VM de origem que você deseja reparar e selecione Copiar na parte superior. Observe que o disco copiado só pode ser colado em um contêiner de blob diferente.

    Captura de tela do Gerenciador de Armazenamento do Azure mostrando um disco selecionado com o botão Copiar realçado.

  6. Crie um novo contêiner de blob clicando com o botão direito do mouse em Contêiner de Blob no painel de navegação e selecionando Criar Contêiner de Blob. Atribua ao novo contêiner de blob um nome de sua escolha, como "cópias de disco".

    Sreenshot do Gerenciador de Armazenamento do Azure mostrando o menu de atalho para Contêineres de Blob no menu de navegação, com Criar Contêiner de Blob realçado.

  7. Selecione Colar para colar o disco copiado no novo contêiner de blob.

    Captura de tela do Gerenciador de Armazenamento do Azure com o botão Colar realçado.

Criar uma VM de reparo com um disco do sistema operacional não gerenciado

  1. No portal do Azure, inicie o processo de criação de uma nova VM baseada no Windows Server 2019. Essa nova VM atuará como sua VM de reparo e seu próprio disco do sistema operacional não deve ser gerenciado.

  2. Na página Noções básicas do assistente "Criar uma máquina virtual", selecione Nenhuma redundância de infraestrutura necessária na lista Opções de disponibilidade .

    Captura de tela da página Noções básicas do assistente Criar uma máquina virtual, mostrando a opção selecionada para nenhuma infraestrutura necessária.

  3. Na página Discos, expanda Avançado abaixo de Discos de Dados e desmarque a caixa de seleção Usar discos gerenciados . Selecione uma conta de armazenamento para o disco do sistema operacional não gerenciado. Não selecione para anexar um disco existente. Captura de tela da página Discos do assistente Criar uma máquina virtual, com a opção usar disco gerenciado desmarcada. Se a opção Usar discos gerenciados não puder ser desmarcada, tente criar a VM usando os seguintes comandos:

    ## Get the subnet ID of the VM
    
    $SubnetID = az network vnet subnet show --resource-group <RG name> --name <Subnet name> --vnet-name <VNet name> --query id -o tsv
    
    ## Create a VM with the unmanaged disk
    
    az vm create \
        --resource-group <RG name>\
        --name <VM name>\
        --image <Image name>\
        --location <location of the VM>\
        --admin-username <Admin name>\
        --subnet $SubnetID\
        --size <VM size>\
        --use-unmanaged-disk  
    
  4. Conclua o assistente "Criar uma máquina virtual" especificando os detalhes de configuração apropriados para sua organização.

Anexar uma cópia do disco não gerenciado à VM de reparo

  1. No portal do Azure, abra a folha Discos para a nova VM de reparo que você acabou de criar.

  2. Selecione + Adicionar disco de dados.

    Captura de tela da folha Discos da VM de reparo no portal do Azure, com o botão Adicionar disco de dados realçado.

  3. Na página Anexar Disco Não Gerenciado , selecione Blob existente como o Tipo de origem.

    Captura de tela da janela anexar disco não gerenciado com a opção de blob existente selecionada.

  4. Abaixo de Blob de origem, selecione Procurar e, em seguida, navegue para selecionar a cópia de disco do sistema operacional que você criou anteriormente.

    Captura de tela da janela anexar disco não gerenciado com o botão Procurar realçado.

    Captura de tela do contêiner de cópias de disco com um disco selecionado e o botão Selecionar destacado.

  5. Na página Anexar Disco Não Gerenciado, aceite o nome do blob de armazenamento padrão e selecione OK.

  6. Na folha Discos da nova VM de reparo, selecione Salvar.

    Captura de tela da folha Discos com o botão Salvar realçado.

Desbloqueie o disco se ele estiver criptografado

Se o disco estiver criptografado com o Azure Disk Encryption (ADE), você precisará desbloqueá-lo antes de repará-lo. Para fazer isso, use as etapas descritas em Resolução #3: Método manual para desbloquear um disco criptografado em uma VM de reparo.

Você pode determinar se o disco está criptografado usando o procedimento aqui: Confirme se o ADE está habilitado no disco

Substitua o disco do sistema operacional na VM de origem

Depois de terminar de reparar o disco, siga estas etapas:

  1. Desanexe o disco do sistema operacional da VM de origem usando a CLI do Azure ou o PowerShell.

    CLI do Azure

    Use o comando az vm unmanaged-disk detach , como no exemplo a seguir:

    az vm unmanaged-disk detach -g MyResourceGroup --vm-name MyVm -n disk_name
    

    PowerShell

    Insira os seguintes comandos no Azure Cloud Shell, um de cada vez:

    $VirtualMachine = Get-AzVM -ResourceGroupName "MyResourceGroup" -Name "MyVm" 
    Remove-AzVMDataDisk -VM $VirtualMachine -Name "disk_name"
    Update-AzVM -ResourceGroupName "MyResourceGroup" -VM $VirtualMachine
    

    Depois de desanexar o disco, você pode substituir o disco do sistema operacional na VM de origem.

  2. Quando o prompt retornar, abra um editor de texto, como o Bloco de Notas, e registre os seguintes valores:

    • ID da assinatura ($subscriptionID): o GUID (identificador global exclusivo) de 32 dígitos associado à sua assinatura do Azure.
    • Nome do grupo de recursos ($rgname): o grupo de recursos da VM de origem.
    • Nome da VM ($vmname): o nome da VM de origem (com falha).
    • URI VHD do disco do sistema operacional ($vhduri): o URI da cópia do disco do sistema operacional não gerenciado que você acabou de desanexar da VM de reparo. (Você pode copiar esse valor clicando com o botão direito do mouse no disco no Gerenciador de Armazenamento e selecionando Copiar URL.)
  3. Insira os comandos a seguir no prompt de comando do PowerShell no Azure Cloud Shell, um de cada vez. Em cada comando, substitua os valores "ID da assinatura", "Nome do grupo de recursos", "Nome da VM" e "URI VHD do disco do sistema operacional" pelos valores correspondentes que você acabou de registrar do seu ambiente.

    $subscriptionID = "Subscription ID"
    $rgname = "Resource group name"
    $vmname = "VM Name"
    $vhduri = "OS disk VHD URI"
    #Add-AzAccount
    Select-AzSubscription -SubscriptionID $subscriptionID
    Set-AzContext -SubscriptionID $subscriptionID
    $vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname
    $vm.StorageProfile.OsDisk.Vhd.Uri = $vhduri
    Update-AzVM -ResourceGroupName $rgname -VM $vm       
    

    Após a conclusão da operação, você deverá ver a seguinte saída:

    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  4. No portal do Azure, abra a folha Discos na VM. Selecione o disco do sistema operacional e verifique se o URI do VHD corresponde ao valor fornecido na última etapa.

Próximas etapas

Para ler uma visão geral do ADE, consulte Habilitar o Azure Disk Encryption para VMs do Windows. Para obter mais informações sobre comandos que você pode usar para gerenciar discos não gerenciados, consulte az vm unmanaged-disk.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.