Solucionar problemas de uma VM do Linux anexando o disco do sistema operacional a uma VM de recuperação usando o portal do Azure

Se sua máquina virtual (VM) Linux encontrar um erro de inicialização ou disco, talvez seja necessário executar as etapas de solução de problemas no próprio disco rígido virtual. Um exemplo comum seria uma entrada inválida em /etc/fstab que impede a inicialização bem-sucedida da VM. Este artigo detalha como usar o portal do Azure para conectar seu disco rígido virtual a outra VM do Linux para corrigir quaisquer erros e, em seguida, recriar sua VM original.

Visão geral do processo de recuperação

O processo de solução de problemas é o seguinte:

  1. Pare a VM afetada.
  2. Faça um instantâneo para o disco do sistema operacional da VM.
  3. Crie um disco rígido virtual a partir do instantâneo.
  4. Anexe e monte o disco rígido virtual em outra VM do Linux para fins de solução de problemas.
  5. Conecte-se à VM de solução de problemas. Edite arquivos ou execute qualquer ferramenta para corrigir problemas no disco rígido virtual original.
  6. Desmonte e desconecte o disco rígido virtual da VM de solução de problemas.
  7. Troque o disco do sistema operacional pela VM.

Observação

Este artigo não se aplica à VM com disco não gerenciado. Para um disco Linux criptografado, consulte Desbloquear um disco Linux criptografado para reparo offline.

Determinar problemas de inicialização

Examine o diagnóstico de inicialização e a captura de tela da VM para determinar por que sua VM não consegue inicializar corretamente. Um exemplo comum seria uma entrada inválida em/etc/fstab ou um disco rígido virtual subjacente sendo excluído ou movido.

Selecione sua VM no portal e role para baixo até a seção Solução de problemas de suporte. Clique em Boot diagnostics para visualizar as mensagens do console transmitidas de sua VM. Revise os logs do console para ver se você pode determinar por que a VM está encontrando um problema. O exemplo a seguir mostra uma VM travada no modo de manutenção que requer interação manual:

Captura de tela da exibição dos logs do console de diagnóstico de inicialização VM.

Você também pode clicar em Captura de tela na parte superior do log de diagnóstico de inicialização para baixar uma captura da captura de tela da VM.

Tire um instantâneo do disco do sistema operacional

Um instantâneo é uma cópia completa somente leitura de um disco rígido virtual (VHD). Recomendamos que você desligue a VM antes de tirar um instantâneo, para limpar todos os processos que estão em andamento. Para tirar um instantâneo de um disco do sistema operacional, siga estas etapas:

  1. Acesse o portal do Azure. Selecione Máquinas virtuais na barra lateral e selecione a VM com problema.

  2. No painel esquerdo, selecione Discos e selecione o nome do disco do sistema operacional.

    A captura de tela mostra o nome do disco do sistema operacional.

  3. Na página Visão geral do disco do sistema operacional, selecione Criar instantâneo.

  4. Crie um instantâneo no mesmo local do disco do sistema operacional.

Crie um disco a partir do instantâneo

Para um disco a partir do instantâneo, siga estas etapas:

  1. Selecione Cloud Shell no portal do Azure.

    Captura de tela do botão Cloud Shell no portal do Azure.

  2. Execute os seguintes comandos do PowerShell para criar um disco gerenciado a partir do instantâneo. Você deve substituir esses nomes de amostra pelos nomes apropriados.

    #Provide the name of your resource group
    $resourceGroupName ='myResourceGroup'
    
    #Provide the name of the snapshot that will be used to create Managed Disks
    $snapshotName = 'mySnapshot' 
    
    #Provide the name of theManaged Disk
    $diskName = 'newOSDisk'
    
    #Provide the size of the disks in GB. It should be greater than the VHD file size. In this sample, the size of the snapshot is 127 GB. So we set the disk size to 128 GB.
    $diskSize = '128'
    
    #Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
    $storageType = 'Standard_LRS'
    
    #Provide the Azure region (e.g. westus) where Managed Disks will be located.
    #This location should be same as the snapshot location
    #Get all the Azure location using command below:
    #Get-AzLocation
    $location = 'westus'
    
    $snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName 
    
    $diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id
    
    New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName
    
  3. Se os comandos forem executados com êxito, você verá o novo disco no grupo de recursos fornecido.

Anexar disco a outra VM

Nas próximas etapas, você usará outra VM para fins de solução de problemas. Depois de anexar o disco à VM de solução de problemas, você pode navegar e editar o conteúdo do disco. Este processo permite que você corrija quaisquer erros de configuração ou revise aplicativos adicionais ou arquivos de log do sistema. Para anexar o disco a outra VM, siga estas etapas:

  1. Selecione seu grupo de recursos no portal e, em seguida, selecione sua VM de solução de problemas. Selecione Discos, selecione Editar e clique em Adicionar disco de dados:

    Captura de tela da opção Adicionar disco de dados no portal do Azure.

  2. Na lista Discos de dados, selecione o disco do sistema operacional da VM que você identificou. Se você não vir o disco do sistema operacional, certifique-se de que a VM de solução de problemas e o disco do sistema operacional estejam na mesma região (local).

  3. Selecione Salvar para aplicar as alterações.

Monte o disco de dados anexado

Observação

Os exemplos a seguir detalham as etapas necessárias em uma VM do Ubuntu. Se você estiver usando uma distribuição Linux diferente, como Red Hat Enterprise Linux ou SUSE, os locais dos arquivos de log e os comandos mount podem ser um pouco diferentes. Consulte a documentação da sua distribuição específica para obter as alterações apropriadas nos comandos.

  1. SSH para sua VM de solução de problemas usando as credenciais apropriadas. Se este disco for o primeiro disco de dados anexado à sua VM de solução de problemas, provavelmente está conectado a /dev/sdc. Use dmseg para listar os discos anexados:

    dmesg | grep SCSI
    

    A saída é semelhante ao seguinte exemplo:

    [    0.294784] SCSI subsystem initialized
    [    0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [    7.110271] sd 2:0:0:0: [sda] Attached SCSI disk
    [    8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk
    [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
    

    No exemplo anterior, o disco do SO está em /dev/sda e o disco temporário fornecido para cada VM está em /dev/sdb. Se você tiver vários discos de dados, eles devem estar em /dev/sdd, /dev/sde e assim por diante.

  2. Crie um diretório para montar seu disco rígido virtual existente. O exemplo a seguir cria um diretório chamado troubleshootingdisk:

    sudo mkdir /mnt/troubleshootingdisk
    
  3. Se você tiver várias partições em seu disco rígido virtual existente, monte a partição necessária. O exemplo a seguir monta a primeira partição primária em /dev/sdc1:

    sudo mount /dev/sdc1 /mnt/troubleshootingdisk
    

    Observação

    A prática recomendada é montar discos de dados em VMs no Azure usando o identificador exclusivo universal (UUID) do disco rígido virtual. Para este breve cenário de solução de problemas, não é necessário montar o disco rígido virtual usando o UUID. No entanto, em uso normal, editar /etc/fstab para montar discos rígidos virtuais usando o nome do dispositivo em vez de UUID pode causar falha na inicialização da VM.

Corrigir problemas no disco rígido virtual original

Com o disco rígido virtual existente montado, agora você pode realizar quaisquer etapas de manutenção e solução de problemas conforme necessário. Depois de resolver os problemas, continue com as etapas a seguir.

Desmonte e desconecte o disco rígido virtual original

Depois que seus erros forem resolvidos, desconecte o disco rígido virtual existente de sua VM de solução de problemas. Você não pode usar seu disco rígido virtual com qualquer outra VM até que a concessão anexando o disco rígido virtual à VM de solução de problemas seja liberada.

  1. Da sessão SSH para sua VM de solução de problemas, desmonte o disco rígido virtual existente. Altere primeiro o diretório pai do seu ponto de montagem:

    cd /
    

    Agora desmonte o disco rígido virtual existente. O exemplo a seguir desmonta o dispositivo em /dev/sdc1:

    sudo umount /dev/sdc1
    
  2. Agora desconecte o disco rígido virtual da VM. Selecione sua VM no portal e clique em Discos. Selecione seu disco rígido virtual existente e clique em Desanexar:

    Captura de tela para desconectar o disco rígido virtual da VM.

    Aguarde até que a VM desconecte o disco de dados com êxito antes de continuar.

Troque o disco do sistema operacional pela VM

O portal do Azure agora dá suporte à alteração do disco do sistema operacional da VM. Para fazer isso, siga estas etapas:

  1. Acesse o portal do Azure. Selecione Máquinas virtuais na barra lateral e selecione a VM com problema.

  2. No painel esquerdo, selecione Discos e selecione Trocar disco do SO.

    Captura de tela da opção Swap OS Disk no portal do Azure.

  3. Escolha o novo disco que você reparou e digite o nome da VM para confirmar a alteração. Se você não vir o disco na lista, aguarde 10 a 15 minutos depois de desanexar o disco da VM de solução de problemas. Certifique-se também de que o disco esteja no mesmo local que a VM.

  4. Selecione OK.

Próximas etapas

Se você estiver tendo problemas para se conectar à sua VM, consulte Solucionar problemas de conexões SSH para uma VM do Azure. Para problemas de acesso a aplicativos executados em sua VM, consulte Solução de problemas de conectividade de aplicativos em uma VM Linux.

Para obter mais informações sobre como usar o Resource Manager, consulte Visão geral do Azure Resource Manager.

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.