# 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
- VHD: Altes Format (Legacy). Max. 2 TB. Anfällig für Korruption bei Abstürzen.
- VHDX: Neues Format (ab Win 8). Max. 64 TB. Nutzt ein Log-System, um Metadaten-Fehler zu verhindern. Unterstützt größere logische Sektoren (4 KB).
# Disk-Typen
- Fixed Size: Belegt sofort den vollen Platz. Beste Performance.
- Dynamically Expanding: Wächst mit den Daten. Spart Platz, hat aber leichten Overhead.
- 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.
- Vorteil: Kinderleichte Backups (einfach die
.vhdxDatei kopieren). - Vorteil: Mehrere isolierte OS-Installationen auf einer Partition ohne Neupartitionierung.
# Einrichtung (Konzept)
- VHDX via WinPE erstellen und mounten.
- Windows Image via DISM in die VHDX anwenden (
/Apply-Image). - 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
-
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.
-
Symptom: VHDX lässt sich nicht mounten (“Datei beschädigt”).
- Lösung: Nutzen Sie
Repair-VHDvia PowerShell.
- Lösung: Nutzen Sie
-
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.
- Empfehlung: Nutzen Sie VHDX für portable Datencontainer (z.B. verschlüsselte Archive), da diese leichter zu handhaben sind als hunderte Einzeldateien.
- Backup: Kopieren Sie VHDX-Dateien im unmounted Zustand, um Konsistenz zu garantieren.
# 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) |