REGISTREREN LOGIN

Een Hyper-V VM herstellen uit de cloud: een volledige hersteltest

Een back-up is pas iets waard als het herstel werkt. Dus hebben we het geprobeerd: een Hyper-V VM gewist, uit de cloud teruggehaald, in Hyper-V geïmporteerd en de gegevens gecontroleerd. Alle schermafbeeldingen komen uit deze test op 13 november 2026 op Windows Server 2025.

Gepubliceerd op 13 november 2026 · vanaf lionbackup client 0.2.0

Uitgangspunt is de test-VM FILESRV01 uit het artikel Hyper-V VM's back-uppen zonder ze af te sluiten: een draaiende VM met twee controlepunten en 300 documenten in een share. Met lionbackup client 0.2.0 is ze geback-upt naar onze dev-omgeving; u volgt dezelfde stappen tegen prod. De schermafbeeldingen tonen een Duitstalige Windows Server en de Duitstalige uitvoer van de client.

Welke back-ups zijn er?

Opsommen en terugzetten gaat met het leestoken. Het schrijftoken waarmee de host back-upt kan dat niet, en dat is zo bedoeld: wie het steelt, komt niet bij de gegevens. Ook hier komt het token uit een bestand dat alleen administrators kunnen lezen:

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

De lijst toont twee back-ups van FILESRV01, elk 20,2 MB, met file_id en tijdstip.

PowerShell: lionbackup client met leestoken en --list toont twee back-ups van FILESRV01, elk 20,2 MB
De lijst, opgehaald met het leestoken: twee back-ups van FILESRV01.

Totaal verlies simuleren

Dan de noodsituatie: de VM uitschakelen, uit Hyper-V verwijderen en haar map met alle schijven wissen. Daarna kent Hyper-V geen VM meer en staat er niets meer op de schijf.

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
Alleen op een testsysteem. Deze opdrachten wissen de VM definitief.
PowerShell: VM FILESRV01 uitgeschakeld, verwijderd, map gewist; Get-VM leeg, Test-Path False
Gesimuleerd totaal verlies: de VM en haar bestanden zijn weg.

Terughalen uit de cloud

Voor het herstel zijn drie dingen nodig: het leestoken, de file_id uit de lijst en de privésleutel. De sleutel hebt alleen u; zonder die sleutel kan niemand de back-up lezen, ook wij niet.

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

De client downloadt de back-up, controleert en ontsleutelt haar en pakt haar uit naar C:\Restore. In de metadata staat de bron: hyperv:FILESRV01. Daarna staan daar 16 bestanden, samen 493 MB, opgebouwd als een export van Hyper-V.

In de test duurde dat 2,1 seconden, voor een kleine VM die gecomprimeerd 20,2 MB groot is. Bij grote VM's hangt de duur af van hun grootte en uw bandbreedte; dit getal is niet over te zetten.

PowerShell: herstel van de back-up naar C:\Restore, ontsleuteld en uitgepakt, daarna 16 bestanden met 493 MB
Het herstel uit de cloud: ontsleuteld en uitgepakt naar C:\Restore, daarna 16 bestanden, 493 MB.

Importeren in Hyper-V

De import is een stap in PowerShell. Omdat de originele VM weg is, gaat de kopie terug naar de oude locatie C:\Hyper-V\FILESRV01. Compare-VM controleert vooraf of Hyper-V haar zo kan overnemen: 0 incompatibiliteiten. Daarna verwijdert u het controlepunt dat Hyper-V alleen voor de back-up heeft aangemaakt. Uw twee eigen controlepunten, „vor-dem-update”, zijn er weer.

$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 met 0 incompatibiliteiten, Import-VM, back-upcontrolepunt verwijderd, twee controlepunten vor-dem-update
Import naar de oude locatie: 0 incompatibiliteiten, uw eigen controlepunten zijn er weer.

Kloppen de gegevens?

Een VM die opstart, is nog geen bewijs. Daarom hebben we haar schijf vóór het starten alleen-lezen gekoppeld en geteld: de 300 documenten van de testgegevens in Freigaben\Buchhaltung, en een steekproef, beleg-123, met de verwachte inhoud. Daarna de schijf ontkoppelen en de VM starten.

$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: schijf alleen-lezen gekoppeld, 300 documenten geteld, steekproef beleg-123, VM gestart, FILESRV01 in normaal bedrijf
De gegevens gecontroleerd: 300 documenten, de steekproef klopt, daarna draait FILESRV01 weer.

FILESRV01 draait weer normaal, in Hyper-V-beheer met haar volledige keten van controlepunten. Ze is aangemaakt op 13 november 2026 om 17:30:44, bij de import.

Hyper-V-beheer: FILESRV01 draait, aangemaakt op 13 november 2026 om 17:30:44, keten van controlepunten volledig
FILESRV01 draait weer, met haar volledige keten van controlepunten.

Wat deze test laat zien en wat niet

Test het herstel regelmatig. Dat kan zonder de originele VM aan te raken: met -GenerateNewId en een ander doelpad, zoals getoond in Hyper-V VM's back-uppen zonder ze af te sluiten.

Mogen wij u ondersteunen?

We doen de eerste hersteltest graag samen met u, op uw Hyper-V-host: kosteloos en via videogesprek.

Plan een gratis afspraak