REGISTRATI LOGIN

Ripristinare una VM Hyper-V dal cloud: un test di ripristino completo

Un backup vale qualcosa solo se il ripristino funziona. Così l'abbiamo provato: abbiamo cancellato una VM Hyper-V, l'abbiamo riportata dal cloud, importata in Hyper-V e abbiamo verificato i dati. Tutti gli screenshot provengono da questo test del 13 novembre 2026 su Windows Server 2025.

Pubblicato il 13 novembre 2026 · dal client lionbackup 0.2.0

Il punto di partenza è la VM di test FILESRV01 dell'articolo Backup delle VM Hyper-V senza spegnerle: una VM in esecuzione con due checkpoint e 300 documenti in una condivisione. Il client lionbackup 0.2.0 l'ha salvata nel nostro ambiente dev; tu segui gli stessi passaggi verso prod. Gli screenshot mostrano un Windows Server in tedesco e l'output del client in tedesco.

Quali backup ci sono?

Elenco e ripristino si fanno con il token di lettura. Il token di scrittura con cui l'host salva non può farlo, ed è voluto: chi lo ruba non arriva ai dati. Anche qui il token viene da un file che solo gli amministratori possono leggere:

Get-Content .\secret\read-token.txt | .\lionbackup-client.exe --config .\hyperv-host.yaml --token-stdin --list

L'elenco mostra due backup di FILESRV01, da 20,2 MB ciascuno, con file_id e orario.

PowerShell: client lionbackup con token di lettura e --list mostra due backup di FILESRV01 da 20,2 MB ciascuno
L'elenco, recuperato con il token di lettura: due backup di FILESRV01.

Simulare una perdita totale

Poi l'emergenza: spegnere la VM, rimuoverla da Hyper-V e cancellare la sua cartella con tutti i dischi. Dopo, Hyper-V non conosce più alcuna VM e sul disco non resta nulla.

Stop-VM -Name FILESRV01 -TurnOff -Force
Remove-VM -Name FILESRV01 -Force
Remove-Item C:\Hyper-V\FILESRV01 -Recurse -Force
Get-VM
Test-Path C:\Hyper-V\FILESRV01
Solo su un sistema di test. Questi comandi cancellano la VM in modo definitivo.
PowerShell: VM FILESRV01 spenta, rimossa, cartella cancellata; Get-VM vuoto, Test-Path False
Perdita totale simulata: la VM e i suoi file sono spariti.

Riportarla dal cloud

Per il ripristino servono tre cose: il token di lettura, il file_id dall'elenco e la chiave privata. La chiave ce l'hai solo tu; senza di essa nessuno può leggere il backup, nemmeno noi.

Get-Content .\secret\read-token.txt | .\lionbackup-client.exe --config .\hyperv-host.yaml --token-stdin `
  --restore TUO-FILE-ID --identity .\secret\hyperv-host.key --target C:\Restore

Il client scarica il backup, lo verifica, lo decifra e lo estrae in C:\Restore. Nei metadati è indicata l'origine: hyperv:FILESRV01. Poi lì ci sono 16 file, 493 MB in tutto, organizzati come un'esportazione di Hyper-V.

Nel test ci sono voluti 2,1 secondi, per una piccola VM che compressa occupa 20,2 MB. Per VM grandi la durata dipende dalla loro dimensione e dalla tua banda; questo numero non si può trasferire.

PowerShell: ripristino del backup in C:\Restore, decifrato ed estratto, poi 16 file con 493 MB
Il ripristino dal cloud: decifrato ed estratto in C:\Restore, poi 16 file, 493 MB.

Importare in Hyper-V

L'importazione è un passaggio in PowerShell. Poiché la VM originale non c'è più, la copia torna nella posizione precedente C:\Hyper-V\FILESRV01. Compare-VM verifica prima se Hyper-V può acquisirla: 0 incompatibilità. Poi rimuovi il checkpoint che Hyper-V ha creato solo per il backup. I tuoi due checkpoint, “vor-dem-update”, sono di nuovo lì.

$target = 'C:\Restore\FILESRV01'
$cfg  = Get-ChildItem "$target\Virtual Machines\*.vmcx" | Select-Object -First 1
$report = Compare-VM -Path $cfg.FullName -Copy -GenerateNewId `
  -VhdSourcePath "$target\Virtual Hard Disks" `
  -VirtualMachinePath 'C:\Hyper-V\FILESRV01' `
  -VhdDestinationPath 'C:\Hyper-V\FILESRV01\Virtual Hard Disks' `
  -SnapshotFilePath 'C:\Hyper-V\FILESRV01'
$report.Incompatibilities.Count
$vm = Import-VM -CompatibilityReport $report
Get-VMSnapshot -VM $vm -SnapshotType Recovery | Remove-VMSnapshot
Get-VMSnapshot -VM $vm | Format-Table Name, SnapshotType -AutoSize
PowerShell: Compare-VM con 0 incompatibilità, Import-VM, checkpoint di backup rimosso, due checkpoint vor-dem-update
Importazione nella posizione precedente: 0 incompatibilità, i tuoi checkpoint sono di nuovo lì.

I dati sono giusti?

Una VM che si avvia non è ancora una prova. Prima di avviarla abbiamo quindi montato il suo disco in sola lettura e contato: i 300 documenti dei dati di test in Freigaben\Buchhaltung e un campione, beleg-123, con il contenuto atteso. Poi si smonta il disco e si avvia la VM.

$disk = (Get-VMHardDiskDrive -VMName FILESRV01).Path
$drive = (Mount-VHD -Path $disk -ReadOnly -Passthru | Get-Disk | Get-Partition | Where-Object DriveLetter).DriveLetter
(Get-ChildItem "${drive}:\Freigaben\Buchhaltung").Count
(Get-Content "${drive}:\Freigaben\Buchhaltung\beleg-123.txt" -Raw).Substring(0, 36)
Dismount-VHD -Path $disk
Start-VM -Name FILESRV01
Get-VM | Format-Table Name, State, Status -AutoSize
PowerShell: disco montato in sola lettura, 300 documenti contati, campione beleg-123, VM avviata, FILESRV01 in funzione normale
I dati verificati: 300 documenti, il campione è corretto, poi FILESRV01 funziona di nuovo.

FILESRV01 funziona di nuovo normalmente, in Gestione di Hyper-V con la catena di checkpoint completa. È stata creata il 13 novembre 2026 alle 17:30:44, al momento dell'importazione.

Gestione di Hyper-V: FILESRV01 in esecuzione, creata il 13 novembre 2026 alle 17:30:44, catena di checkpoint completa
FILESRV01 funziona di nuovo, con la catena di checkpoint completa.

Cosa mostra questo test e cosa no

Prova il ripristino regolarmente. Puoi farlo senza toccare la VM originale: con -GenerateNewId e un altro percorso di destinazione, come mostrato in Backup delle VM Hyper-V senza spegnerle.

Possiamo supportarti?

Facciamo volentieri insieme a te il primo test di ripristino sul tuo host Hyper-V: gratis, in videochiamata.

Fissa un appuntamento gratuito