# VHD & VHDX: Virtueller Storage jenseits von Hyper-V

TL;DR / Management Summary VHD (Virtual Hard Disk) und der modernere Nachfolger VHDX sind Dateiformate, die eine komplette Festplatte simulieren. Sie sind die Basis für VMs, werden aber von Senior Admins auch auf physischen Clients für Native Boot (VHD-Boot), portable Software-Umgebungen und einfache Backups genutzt. VHDX bietet dabei Schutz vor Datenverlust bei Stromausfall und unterstützt Größen bis 64 TB.


# 1. Einführung & Architektur

Die Anatomie einer virtuellen Disk.

# VHD vs. VHDX

# Disk-Typen

  1. Fixed Size: Belegt sofort den vollen Platz. Beste Performance.
  2. Dynamically Expanding: Wächst mit den Daten. Spart Platz, hat aber leichten Overhead.
  3. Differencing: Speichert nur Änderungen gegenüber einer “Parent” Disk (ideal für Test-Umgebungen).

# 2. Management in der Praxis

Mounten und Konvertieren.

# VHDX via PowerShell erstellen

# Erstellt eine dynamische 100GB Disk
New-VHD -Path "D:\VMs\Data.vhdx" -SizeBytes 100GB -Dynamic

# Mounten (als Laufwerk einbinden)
Mount-VHD -Path "D:\VMs\Data.vhdx"

# Partitionieren und Formatieren
Initialize-Disk -Number 2 -PartitionStyle GPT
New-Partition -DiskNumber 2 -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS

# Konvertierung (VHD zu VHDX)

Convert-VHD -Path "old.vhd" -DestinationPath "new.vhdx" -VHDType Dynamic

# 3. Deep Dive: Native Boot (VHD-Boot)

Das OS in der Datei.

Ein geniales Feature für Admins: Sie können Windows direkt in eine VHDX-Datei auf einer physischen Festplatte installieren und davon booten.

# Einrichtung (Konzept)

  1. VHDX via WinPE erstellen und mounten.
  2. Windows Image via DISM in die VHDX anwenden (/Apply-Image).
  3. Boot-Eintrag hinzufügen: bcdboot V:\Windows /s S: /f UEFI (wobei V: die gemountete VHDX ist).

# 4. Day-2 Operations: Optimierung

Platz zurückgewinnen.

Dynamische VHDX-Dateien schrumpfen nicht automatisch, wenn Sie darin Dateien löschen.

# Compact VHDX

# Disk auswerfen
Dismount-VHD -Path "C:\Storage\Disk.vhdx"

# Optimieren (Nullen entfernen)
Optimize-VHD -Path "C:\Storage\Disk.vhdx" -Mode Full

# 5. Troubleshooting & “War Stories”

Wenn die virtuelle Disk streikt.

# Top 3 Fehlerbilder

  1. Symptom: “Die Datei ist zu groß für das Zieldateisystem”.

    • Ursache: Sie versuchen eine VHDX auf eine FAT32-Partition (Limit 4 GB) zu schieben.
    • Lösung: Ziel-Partition nach NTFS konvertieren.
  2. Symptom: VHDX lässt sich nicht mounten (“Datei beschädigt”).

    • Lösung: Nutzen Sie Repair-VHD via PowerShell.
  3. Symptom: Performance-Einbruch bei Native Boot.

    • Ursache: Fragmentation der VHDX auf der physischen Disk.
    • Lösung: VHDX-Datei defragmentieren (auf dem Host!), bevor sie gebootet wird.

# “War Story”: Der “Lab-in-a-Box” Retter

Ein Entwicklerteam brauchte für ein Projekt eine spezielle Linux-Windows-Hybrid-Umgebung auf ihren Laptops. Anstatt die Laptops neu zu partitionieren (Risiko!), gaben wir ihnen eine 50 GB VHDX-Datei mit dem fertigen Image. Sie fügten diese via bcdedit zu ihrem Boot-Menü hinzu. Ergebnis: Nach Projektende löschten sie einfach die eine Datei und das Boot-Menü – das Primär-System blieb völlig unberührt.


# 6. Monitoring & Reporting

Füllstand überwachen.

# PowerShell Disk Space Check

# Zeigt die physische Größe vs. die logische Größe
Get-VHD -Path "C:\Data\Disk.vhdx" | Select-Object Path, FileSize, Size

# 7. Fazit & Empfehlung

VHDX ist mehr als nur ein VM-Format.


# Anhang: Cheatsheet

Aufgabe Befehl
Info anzeigen Get-VHD -Path ...
Größe ändern Resize-VHD -Path ... -SizeBytes 200GB
Parent setzen Set-VHD -Path <Diff> -ParentPath <Parent>
Inspect Tool vhdinspect.exe (Third Party)

# Referenzen