2025-09-19

Recuperare una macchina virtuale Hyper-V da una catena di snapshot corrotta


Chi lavora con Hyper-V sa bene che gli snapshot (o checkpoint) sono strumenti preziosi per tornare indietro in caso di problemi. Tuttavia, può capitare che la catena di file `.avhdx` e `.vhdx` si corrompa, impedendo l'avvio della macchina virtuale.
 
In questo articolo raccontiamo come affrontare un caso reale e quali strategie usare per ripristinare il sistema.

⚠️ Prima di procedere è fondamentale avere un backup: in caso di errore durante un'operazione si rischia la perdita totale della catena. 

 

Il problema

All'avvio della VM, Hyper-V restituisce un errore simile a questo:

Impossibile avviare la macchina virtuale. La catena dei dischi rigidi virtuali è danneggiata. Mancata corrispondenza tra gli identificatori del disco rigido virtuale padre e del disco differenze.
In pratica, uno degli snapshot `.avhdx` non riconosce come valido il proprio parent (che può essere un altro `.avhdx` od il `.vhdx` base). Questo accade abbastanza spesso dopo spostamenti manuali, copie da un altro sistema o snapshot non consolidati.

Diagnosi

Bisogna prima di tutto verificare i file, controllando che siano presenti tutti gli `.avhdx` ed il `.vhdx` originari.

Quindi è necessario ispezionare la catena delle dipendenze. Con PowerShell è possibile risalire la catena dei parent:

Get-VHD -Path "C:\Percorso\VM\Server.avhdx"

La proprietà `ParentPath` indica il disco genitore. Se non corrisponde, la catena è interrotta.

Recupero tramite GUI

La via più semplice è utilizzare `Hyper-V Manager → Edit Disk` (Modifica Disco):

  • aprire Hyper-V Manager e, nel riquadro destro (Actions), scegliere Edit Disk;
  • selezionare il file `.avhdx` più recente;
  • se il parent manca o non combacia, viene proposta l'opzione `Reconnect` per indicare manualmente il file corretto;
  • se invece il parent è valido, è possibile avviare un Merge:
    • to the parent disk: incorpora i dati direttamente nel disco padre;
    • to a new virtual disk: crea un nuovo `.vhdx` unico, lasciando intatti gli originali.

Due strategie di consolidamento

  1. Merge "to a new virtual disk" (più sicuro)
    Crea un nuovo `.vhdx` consolidato con dentro tutti i cambiamenti. Richiede spazio libero pari almeno alla dimensione complessiva della catena. Consigliato quando si ha sufficiente spazio su disco.
  2. Merge “to parent disk” (meno spazio)
    Applica i dati direttamente al parent, eliminando il figlio. Molto più leggero in termini di spazio richiesto. Più rischioso: se il merge si interrompe, il parent può corrompersi.

Snapshot e checkpoint

È normale che in Hyper-V Manager, dopo aver consolidato o fuso gli snapshot, siano ancora visibili i punti di controllo (checkpoint) elencati nella GUI della VM: il merge agisce a livello di file di disco: prende il contenuto del differencing disk `.avhdx` e lo incorpora nel parent.
I checkpoint visibili nella GUI invece sono solo voci di configurazione della VM, registrate nel file XML di configurazione della macchina virtuale. Quindi anche se i file `.avhdx` non esistono più (perché consolidati), la GUI mostra ancora i checkpoint come "oggetti logici" associati alla VM.
Facendo clic destro → `Delete checkpoint` (oppure `Delete checkpoint subtree` per rimuovere tutta la catena) si può "ripulire" la situazione.

Conclusioni 

Una catena di snapshot corrotta non è necessariamente la fine della VM. Hyper-V mette a disposizione strumenti come Edit Disk che, se usati correttamente, consentono di recuperare o consolidare i dischi virtuali. Se si dispone di spazio sufficiente, il merge verso un nuovo file è la scelta più sicura. In condizioni di spazio limitato, si può optare per merge incrementali sul parent, accettando però un rischio maggiore. In entrambi i casi, la regola d'oro resta sempre la stessa: non lavorare mai senza un backup dei file originali.