Hyper-V Integration Services

Nachdem ich einen physikalischen Server mit Disk2VHD in eine VHD-Datei umgewandelt habe, wollte ich gerne die Größe der VHD-Datei verkleinern. Die VHD-Datei hatte eine ursprüngliche Größe von ca. 350GB, es waren aber nur ca. 140GB Daten auf den Partitionen C: und D: vorhanden. Somit lagen ca. 200GB brach und das bringt zweierlei Probleme mit sich. Als ersten wird zuviel Festplattenspeicher verbraucht und die Backup-Zeiten sind natürlich auch wesentlich längern.

Somit musste ich mit allen Mitteln die VHD irgendwie verkleinern. Zunächst habe ich wie bereits geschrieben mit SDelete den freien Speicherplatz als „frei“ marktiert. Danach habe ich versucht über den Servermanager die Partition zu verkleinern. Bei Partition C: ging das einwandfrei, bei D: hingegen wollte Windows die Partition nur von ca. 700GB auf 600GB verkleinern, obwohl nur ca. 100GB Daten enthalten waren.

Die Vermutung lag nahe, dass es sich um fragmentierte Bereiche auf der Partition D: gehandelt hat. Somit habe ich eine Defragmentierung durchgeführt. Leider konnte ich die Partition daraufhin immer noch nicht verkleinern.

Nach einiger Suche kam ich dem Problem auf die Spur. Durch das „defrag“ wird im Ereignisprotokoll / Anwendungen ein Eintrag generiert, der auf evtl. nicht verschiebbare Dateien hinweist. Er trägt die Ereigniskennung 259.

Defrag Ereignis 259

Daraufhin habe ich mir die Datei angeschaut und hatte Glück, es war eine temporäre Datei, die nicht mehr benötigt wurde. Somit habe ich die Datei gelöscht und den Defrag erneut durchgeführt. Nun erschien diese Meldung nicht mehr und die Partition ließen sich über den Server-Manager / Speicher / Datenträgerverwaltung problemlos auf die gewünschte Größe verkleinern.

Nun war das erste Problem somit behoben, jetzt musste nur noch die VHD verkleinert werden. Dies geht in der Regel sehr einfach über den Hyper-V Manager über „VHD komprimieren“. Aber dieser Vorgang wurde jeweils sofort nach 1 Sekunde ohne Fehlermeldung abgebrochen. Auch im Ereignisprotokoll war nichts zu erkennen. Hier brachte mich erst die Powershell weiter, als ich versuchte, die VHD mit folgendem Befehl zu verkleinern.

Resize-VHD -Path <vDisk.vhdx> -ToMinimumSize

Aber dieser Befehl brach ebenfalls somit mit folgender Fehlermeldung ab:

„Fehler beim Ändern der Größe des virtuellen Datenträgers – Fehler 0xC03A0027“

Aber es gab dann doch noch eine Lösung. Im Hyper-V Manager muss die Datei, in diesem Fall die .vhdx, in eine VHD konvertiert werden. Das funktionierte, warum auch immer, problemlos. Anschließend war die VHD nur noch ca. 150GB groß.

VHD verkleinern

Der Aufwand hat sich also gelohnt, 200GB Platz und viel Backup-Zeit eingespart!

– Prüfen ob eine Festplatte einen MBR oder GPT Partitionsstil verwendet
– MiniTool Partition Wizard – Ein umfassender Überblick über eine herausragende Software