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.
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)
Categoria | O que pode estar errado | Como verificar |
---|---|---|
Formato do disco | O 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 disco | O tamanho do VMDK excede limite (≈ 2 TB p/ VHD, 64 TB p/ VHDX). | Compare o tamanho real do disco com os limites suportados. |
Permissões | Conta 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. |
Conectividade | Falha 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 job | Alvo incorreto, transporte inapropriado ou opção de conversão desmarcada. | Revise o wizard “Restore to Microsoft Hyper‑V”. |
Versões/patches | Builds desatualizados do Veeam/Windows com bugs já corrigidos. | Compare seu build com o mais recente; aplique updates. |
Causas adicionais que frequentemente passam despercebidas
Categoria | Exemplo | Validação |
---|---|---|
Espaço em disco | Volume do destino sem espaço suficiente para VHDX (mesmo dinâmico). | Garanta reserva >= 15–20% do volume; monitore cotas/quotas. |
Antivírus/EDR | Bloqueio 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álido | Diretó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 VM | Linux UEFI restaurado como Gen 1 (BIOS) ou vice‑versa. | Checar particionamento (GPT/MBR) e firmware esperado do guest. |
Controladores | Para 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ísico | Incompatibilidades 4Kn/512e com repositórios mais antigos. | Teste criar VHDX com New‑VHD no mesmo volume. |
Cluster/CSV | Restaurar 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á existe | VHDX 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)
- Confirme VHDX como formato destino e que o tamanho não ultrapassa limites.
- Teste criar um VHDX manualmente no mesmo caminho e com a mesma conta do Veeam.
- Valide espaço livre, permissões NTFS/SMB e exclusões no antivírus/EDR.
- Revise Gen 1 vs Gen 2, IDE vs SCSI e Secure Boot para Linux.
- Cheque conectividade (2500–3300, 443, 902 e portas padrão de Windows remoto) e firewalls.
- 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:
- Reduza dentro do guest (LVM/filesystem), liberando espaço.
- Encolha a partição; depois ajuste o disco com ferramentas do hypervisor.
- 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)
- 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).
- O tamanho/limite do disco está dentro do suportado?
- Se excede: reduza/fragmente e reconverta.
- Ambiente é cluster/CSV?
- Confirme nó proprietário e caminho; se necessário, aponte explicitamente para o nó dono do CSV.
- Linux UEFI/BIOS coerentes?
- Gen 2 para GPT/UEFI (avaliar Secure Boot), Gen 1 para MBR/BIOS.
- 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ística | VHD | VHDX |
---|---|---|
Capacidade máxima | ≈ 2 TB | Até 64 TB |
Resiliência | Menos resistente a corrupção | Log interno contra quedas de energia |
Desempenho | Menos eficiente | Aprimorado, melhor com 4K |
Recomendação | Legado/compatibilidade | Padrão preferencial |
Portas e camadas envolvidas (referência)
Componente | Porta/Protocolo | Quando se aplica |
---|---|---|
Veeam Data Movers | 2500–3300/TCP | Tráfego de transferência durante restore |
HTTPS (vCenter/API) | 443/TCP | Inventário/leitura quando a origem é VMware |
ESXi | 902/TCP | Operações relacionadas a hosts VMware |
Windows RPC/SMB | 135/445/TCP | Criação de arquivos, acesso a shares e ACLs |
WinRM (opcional) | 5985/5986/TCP | Automaçã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
- Faça backup da VM original e documente particionamento e controladores.
- Converta os discos para VHDX (se ainda não convertido).
- Planeje a geração da VM baseada em UEFI/BIOS do Linux e tipo de partição.
- Defina caminho de destino com espaço e permissões verificados.
- Execute a restauração (Full VM ou Instant Recovery to Hyper‑V, se licenciado).
- Após o restore, ajuste switch virtual, ordem de boot e, se necessário, Secure Boot.
- 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.