Veeam: como corrigir o erro “failed to modify disk” ao restaurar Linux do VMware para Hyper‑V

Ao restaurar um backup de VM Linux do VMware vSphere para um host Hyper‑V via Veeam Backup & Replication, a falha “failed to modify disk” normalmente indica bloqueios na criação/ajuste do VHD/VHDX. Este guia detalha causas, validações e correções práticas para concluir a restauração.

Índice

Visão geral do erro “failed to modify disk”

No fluxo de Restore to Microsoft Hyper‑V, o Veeam lê os blocos do backup (VMDK), converte e cria um disco compatível com o destino (VHD/VHDX), anexa o disco à VM de destino e finaliza o registro da máquina. O erro aparece exatamente na fase de criação/modificação do disco no host Hyper‑V, quando algo impede:

  • Converter corretamente VMDK → VHDX;
  • Criar o arquivo .vhd/.vhdx no caminho especificado;
  • Ajustar tamanho, tipo (dinâmico/fixo) ou controlador (IDE/SCSI);
  • Anexar o disco à VM (especialmente em Gen 1/Gen 2 incompatíveis);
  • Escrever no volume de destino (permissões, espaço, bloqueio por antivírus/EDR).

Sinais e sintomas comuns

  • Mensagem direta no assistente: failed to modify disk, às vezes acompanhada de “Invalid parameter”, “Access is denied”, “Path not found”, “VDSEDISKNOTFOUND” ou “The file exists”.
  • Criação parcial do arquivo .vhdx (0 KB ou tamanho menor que o esperado) no diretório de destino.
  • Evento no Visualizador de Eventos do host Hyper‑V apontando falha de criação de VHDX ou acesso negado ao caminho.
  • Em ambientes de cluster: o CSV muda de estado para Redirected Access durante a tentativa e retorna, sugerindo problemas de caminho ou proprietário do volume.

Principais causas prováveis (resumo rápido)

CategoriaO que pode estar erradoComo verificar
Formato do discoO backup contém discos VMDK; o Hyper‑V só aceita VHD/VHDX.Confirme no inventário do backup ou nas propriedades da VM.
Tamanho do discoO tamanho do VMDK excede limite (≈ 2 TB p/ VHD, 64 TB p/ VHDX).Compare o tamanho real do disco com os limites suportados.
PermissõesConta do restore sem direitos de Hyper‑V Administrator ou sem gravação na pasta de VHDX.Tente criar um VHDX no Hyper‑V manualmente com a mesma conta.
ConectividadeFalha de rede entre Veeam e host Hyper‑V durante a transferência.Ping/Test‑TCP; verifique firewalls e portas (2500–3300, 443, 902).
Parâmetros do jobAlvo incorreto, transporte inapropriado ou opção de conversão desmarcada.Revise o wizard “Restore to Microsoft Hyper‑V”.
Versões/patchesBuilds desatualizados do Veeam/Windows com bugs já corrigidos.Compare seu build com o mais recente; aplique updates.

Causas adicionais que frequentemente passam despercebidas

CategoriaExemploValidação
Espaço em discoVolume do destino sem espaço suficiente para VHDX (mesmo dinâmico).Garanta reserva >= 15–20% do volume; monitore cotas/quotas.
Antivírus/EDRBloqueio de criação de arquivos grandes ou de extensão .vhdx.Exclua pastas do Hyper‑V/CSV do tempo real; teste desativando temporariamente (ambiente controlado).
Caminho inválidoDiretório de VHDX alterado nas Configurações do Hyper‑V ou UNC sem permissões.Verifique “Hyper‑V Settings → Virtual Hard Disks” e ACLs do caminho.
Gen da VMLinux UEFI restaurado como Gen 1 (BIOS) ou vice‑versa.Checar particionamento (GPT/MBR) e firmware esperado do guest.
ControladoresPara Gen 1, disco do SO precisa em IDE; restauração tenta SCSI.No assistente, force controlador compatível; pós‑restore ajuste no Manager.
Setor físicoIncompatibilidades 4Kn/512e com repositórios mais antigos.Teste criar VHDX com New‑VHD no mesmo volume.
Cluster/CSVRestaurar em nó não proprietário do CSV, falhas de caminho SMB/NTFS.Confirme “Owner Node” do CSV e permissões no caminho de destino.
Nome/arquivo já existeVHDX com mesmo nome presente; Veeam não substitui conforme política.Liste a pasta; selecione outro nome/caminho ou apague o antigo.

Checklist rápido (TL;DR)

  1. Confirme VHDX como formato destino e que o tamanho não ultrapassa limites.
  2. Teste criar um VHDX manualmente no mesmo caminho e com a mesma conta do Veeam.
  3. Valide espaço livre, permissões NTFS/SMB e exclusões no antivírus/EDR.
  4. Revise Gen 1 vs Gen 2, IDE vs SCSI e Secure Boot para Linux.
  5. Cheque conectividade (2500–3300, 443, 902 e portas padrão de Windows remoto) e firewalls.
  6. Abra o restore.log do job e procure mensagens de acesso/parametrização.

Passo a passo de troubleshooting

Converter o formato do disco

O Hyper‑V não lê VMDK. Converta o disco para VHDX antes ou durante o restore.

  • Via Veeam: use Export Disk e selecione VHDX como formato.
  • Via ferramentas de conversão: exemplos de uso: # qemu-img (executar em host compatível) qemu-img convert -p -f vmdk -O vhdx /caminho/origem.vmdk /destino/convertido.vhdx StarWind V2V Converter (GUI) Selecione o VMDK, escolha destino Microsoft VHDX, tipo "Thin provisioned (dynamic)"
  • Boas práticas: prefira VHDX dinâmico (thin) para testes e VHDX fixo para workloads críticos em produção, conforme política de desempenho/armazenamento.

Reduzir ou dividir discos grandes

Se o VMDK ultrapassa os limites do destino (p. ex., tentativa de criar VHD), reduza o volume:

  1. Reduza dentro do guest (LVM/filesystem), liberando espaço.
  2. Encolha a partição; depois ajuste o disco com ferramentas do hypervisor.
  3. Re‑converta para VHDX e prossiga com o restore.

Quando aplicável, avalie dividir em múltiplos discos de dados (SO separado de dados), facilitando compatibilidade e migração.

Garantir permissões adequadas

A conta usada pelo Veeam precisa:

  • Ser Local Admin e membro de Hyper‑V Administrators no(s) host(s) de destino;
  • Ter NTFS “Modify” no diretório de Virtual Hard Disks e no caminho efetivo de gravação (CSV/SMB/volume local);
  • Em ambientes com SMB 3.x, possuir permissões de Share e NTFS coerentes (Least Privilege, mas suficientes para criar/alterar VHDX).

Teste prático com a mesma conta (abra sessão RDP no host):

# Criação de VHDX com PowerShell
New-VHD -Path "D:\HyperV\VHDX\teste-perm.vhdx" -SizeBytes 20GB -Dynamic

Conceder permissão NTFS (exemplo)

icacls "D:\HyperV\VHDX" /grant "DOMINIO\VeeamSvc:(OI)(CI)M" /T 

Validar conectividade e portas

Verifique latência e bloqueios de firewall entre o servidor Veeam/proxy e o host Hyper‑V. Além das portas do Veeam Data Mover (2500–3300/TCP), revise acesso a 443/TCP (quando houver vCenter/HTTPS), 902/TCP (ESXi), e portas de gerenciamento Windows como 135/RPC, 445/SMB e 5985/5986 WinRM, conforme seu desenho.

# Testes pontuais
Test-NetConnection hyperv01 -Port 2500
Test-NetConnection hyperv01 -Port 445
Test-NetConnection repos01 -Port 445

Se houver IDS/IPS/inspeção de conteúdo, teste a restauração com a política relaxada apenas no tráfego entre Veeam ↔ Hyper‑V, em janela controlada.

Reconfigurar o job de restore

No assistente Restore to Microsoft Hyper‑V, confira:

  • Destino correto: host ou cluster/CSV pretendido, caminho de VHDX válido.
  • Tipo de disco: selecione VHDX dinâmico (recomendado para a maioria dos casos);
  • Geração da VM: alinhe com o firmware do Linux:
    • Gen 2 (UEFI): discos SCSI suportados; Secure Boot pode exigir chaves compatíveis (desative ou use Microsoft UEFI CA quando a distro suportar);
    • Gen 1 (BIOS): disco de boot em IDE; dados em SCSI.
  • Controladores e ordem de boot: garanta que o disco do SO esteja no controlador esperado.
  • Rede e drivers: selecione o virtual switch correto; considere sintéticos padrão.

Analisar os logs do Veeam

Abra o pacote de suporte em Help → Support Information e inspecione o restore.log (e arquivos correlatos do job). Palavras‑chave úteis:

  • Access is denied → permissões/AV/SMB;
  • Invalid parameter → combinação inválida de geração/driver/controlador/tamanho;
  • VDSEDISKNOTFOUND → caminho de disco inexistente/não acessível;
  • Path not found → diretório de VHDX errado, UNC inválido ou CSV inacessível;
  • The file exists → arquivo já existe; renomeie/limpe o destino.

Atualizar software

Mantenha o Veeam em versão recente (ex.: 12.1+), inclusive patches/CUs, e aplique os updates do Windows nos hosts Hyper‑V. Correções específicas de VHDX/CSV/SMB e componentes de armazenamento são frequentes em CUs mensais.

Escalonar ao suporte

Se o log apontar falha de driver/API, anexe todos os logs do job, captura do Hyper‑V Manager, versão do Windows/cluster, tipo de armazenamento (local/SMB/CSV/ReFS/NTFS) e caminho destino. Inclua também resultado dos testes New‑VHD e Test‑NetConnection.

Guia de decisão (do erro à solução)

  1. Consegue criar VHDX manualmente no mesmo caminho?
    • Se não: problema de permissões, caminho, espaço ou AV/EDR.
    • Se sim: revise parâmetros do job (gen/controlador, nome de arquivo, tipo do disco).
  2. O tamanho/limite do disco está dentro do suportado?
    • Se excede: reduza/fragmente e reconverta.
  3. Ambiente é cluster/CSV?
    • Confirme nó proprietário e caminho; se necessário, aponte explicitamente para o nó dono do CSV.
  4. Linux UEFI/BIOS coerentes?
    • Gen 2 para GPT/UEFI (avaliar Secure Boot), Gen 1 para MBR/BIOS.
  5. Logs mostram “Access is denied”?
    • Ajuste ACLs e políticas do AV/EDR; repita o teste.

Notas específicas para Linux

  • UEFI & Secure Boot: se a distro não tem bootloader assinado compatível, desative o Secure Boot na VM Gen 2 ou mude para Gen 1.
  • Particionamento: Gen 2 espera GPT; Gen 1 funciona melhor com MBR. Alinhe o tipo de partição do backup com a geração da VM.
  • fstab e UUIDs: após conversão/recriação de discos, garanta que /etc/fstab usa UUIDs corretos (evita boot em modo de emergência).
  • GRUB: se necessário, recupere o carregador (ex.: grub2-install / update-grub a partir de um ambiente chroot).
  • Drivers Hyper‑V: as famílias hv_* já fazem parte do kernel moderno; em distros legadas, valide módulos.

Comparativo rápido: VHD vs VHDX

CaracterísticaVHDVHDX
Capacidade máxima≈ 2 TBAté 64 TB
ResiliênciaMenos resistente a corrupçãoLog interno contra quedas de energia
DesempenhoMenos eficienteAprimorado, melhor com 4K
RecomendaçãoLegado/compatibilidadePadrão preferencial

Portas e camadas envolvidas (referência)

ComponentePorta/ProtocoloQuando se aplica
Veeam Data Movers2500–3300/TCPTráfego de transferência durante restore
HTTPS (vCenter/API)443/TCPInventário/leitura quando a origem é VMware
ESXi902/TCPOperações relacionadas a hosts VMware
Windows RPC/SMB135/445/TCPCriação de arquivos, acesso a shares e ACLs
WinRM (opcional)5985/5986/TCPAutomação/PowerShell remota

Exemplos práticos de teste

Testar criação de VHDX no mesmo volume

# Executar no host Hyper‑V com a MESMA conta que o Veeam usa
$path = "D:\ClusterStorage\Volume1\VMs\Linux01\disco-os.vhdx"
New-Item -ItemType Directory -Path (Split-Path $path) -Force | Out-Null
New-VHD -Path $path -SizeBytes 60GB -Dynamic
Mount-VHD -Path $path -ReadOnly
Dismount-VHD -Path $path
Remove-Item $path -Force

Validar caminho e permissões em share SMB

# No servidor de arquivos
Get-SmbShare -Name VHDX
Get-SmbShareAccess -Name VHDX
Ajuste se necessário e repita o teste do New-VHD apontando para \\filesrv\VHDX

Boas práticas de configuração do Hyper‑V para restaurações

  • Diretórios padrão consistentes: em “Hyper‑V Settings”, defina Virtual Hard Disks e Virtual Machines para caminhos resilientes (CSV/ReFS/Storage Spaces) conforme seu projeto.
  • Exclusões de antivírus: pastas de VHDX, diretórios de configuração da VM e processos do Hyper‑V/Veeam.
  • ReFS e blocagem: em repositórios/CSV com ReFS 64K, valide compatibilidade e espaço livre antes de operações pesadas.
  • Nomenclatura e limpeza: evite nomes com espaços/caracteres especiais; limpe artefatos de restaurações anteriores para não colidir com arquivos existentes.

Procedimentos para concluir a restauração com segurança

  1. Faça backup da VM original e documente particionamento e controladores.
  2. Converta os discos para VHDX (se ainda não convertido).
  3. Planeje a geração da VM baseada em UEFI/BIOS do Linux e tipo de partição.
  4. Defina caminho de destino com espaço e permissões verificados.
  5. Execute a restauração (Full VM ou Instant Recovery to Hyper‑V, se licenciado).
  6. Após o restore, ajuste switch virtual, ordem de boot e, se necessário, Secure Boot.
  7. Realize testes de integridade no Linux (filesystem, serviços, rede).

Erros correlatos e como tratá‑los

  • The file exists: remova/renomeie o VHDX destino e repita.
  • Path not found: crie a pasta ou corrija o caminho no assistente; evite UNC sem credenciais apropriadas.
  • Access is denied: reforce ACLs (NTFS/Share), pertença a Hyper‑V Administrators e exclua a pasta do AV.
  • Unsupported SCSI/IDE: ajuste para IDE no disco de boot de VMs Gen 1; use SCSI em Gen 2.
  • Disk size unsupported: reduza o volume ou troque VHD por VHDX.

FAQ

Posso restaurar diretamente como VHD em vez de VHDX?
Pode, mas VHD é legado e limitado a ≈ 2 TB. Prefira VHDX para resiliência e capacidade.

O erro acontece só em ambientes clusterizados?
Não. Ele é mais visível em CSV/Shares por questões de permissões e caminhos, mas também ocorre em hosts autônomos com AV/EDR ou diretórios inválidos.

Preciso desativar o antivírus?
Não de forma permanente. Em troubleshooting, uma janela controlada sem inspeção em pastas do Hyper‑V ajuda a isolar a causa. Depois, configure exclusions adequadas.

Checklist final antes de abrir ticket

  • Versões do Veeam e do Windows/Hyper‑V atualizadas.
  • restore.log com timestamp da falha e mensagens‑chave.
  • Resultado do New‑VHD no mesmo caminho, com a mesma conta.
  • Espaço livre > 20% no volume de destino.
  • Confirmação de Gen (1/2), controlador e Secure Boot para o Linux.
  • Lista de portas liberadas (2500–3300, 443, 902, 135, 445, 5985/5986 conforme cenário).
  • Captura do Hyper‑V Manager mostrando caminho de VHDX e configuração da VM.

Recomendações adicionais

  • Valide a migração em laboratório com amostras representativas.
  • Considere Quick Migration ou Instant Recovery to Hyper‑V (quando licenciado) para reduzir downtime.
  • Documente mapeamento de controladores (SCSI ↔ IDE) e partições UEFI/BIOS, pois diferem entre VMware e Hyper‑V.

Conclusão

O erro “failed to modify disk” quase sempre está ligado a formato/tamanho de disco, permissões/caminho ou parâmetros de restore (gen/controladores). Seguindo o roteiro de validação — conversão para VHDX, criação manual de VHDX com a mesma conta, revisão de Gen/IDE/SCSI, portas e logs — a restauração de VMs Linux do VMware para Hyper‑V tende a prosseguir de forma consistente e reproduzível em produção.

Índice