Mit Windows Virtual PC (VPC) und dem neuen Tool Disk2VHD von Sysinternals wurde ein kleiner Hype entfacht, wobei viele Administratoren versucht haben, ihren persönlichen Computer in eine Virtual Machine zu konvertieren. In Zeiten von Hard Disks im Terrabyte Bereich wurde die Euphorie schnell von einer Limitation in Virtual PC gebremts. Denn VPC kann mit Virtual Hard Disks (VHDs) grosser als 127.5 GB nicht umgehen. Der Vorgang eine solches VHD Image in hinzuzufügen wird mit folgender Fehlermeldung abgebrochen:
The virtual hard disk image ‘.\My Virtual Machines\WS2008.vhd’ is too large for the IDE bus. Make sure that all virtual hard disk images connected to the IDE bus are not greater than 127.5 GB.
Für ein Resize eines solchen VHD Image, kann nicht nur die Virtual Hard Disk verkleinert werden. Auch die darauf angelegten Volumes müssen vorgängig auf die neue Grösse angepasst, sprich verkleinert werden.
Resize Volume
Das Volume kann auf einem Host System wie Windows 7, oder Server 2008 R2 sehr einfach verkleinert werden. Dazu muss lediglich ein Command Prompt als Administrator geöffnet und Diskpart ausgeführt werden. Nachdem eine Virtual Hard Disk geladen / attached wurde kann bereits das gewünschte Volume verkleinert werden. Sinnvoll ist es das Volume vor der Konvertierung zu defragmentieren, da ansonsten zu viel verteilter Speicherplatz belegt wird. Im nachfolgenden Beispiel wird ein Volume vom VHD Image “TestW7.vhd” auf 100 GB verkleinert:
C:\> diskpart
DISKPART> list vdisk
DISKPART> select vdisk file=D:\TestW7.vhd
DISKPART> attach vdisk
DISKPART> list volume
DISKPART> select volume 4
DISKPART> shrink desired=102400
DISKPART> detach vdisk
DISKPART> exit
Wird bei “shrink” kein spezifischer Wert angegeben (desire=), so wird automatisch der maximal mögliche Wert genommen.
Resize VHD Image
Im nächsten Schritt muss auf das Tool VHD Resizer zurückgegriffen werden. Der VHD Resizer kopiert den Inhalt eines VHD Image blockweise in eine neue Datei. Der Vorteil hierbei ist, dass das Original Image erhalten bleibt und somit keine Daten verloren gehen (sollten). Damit die “Volume ID” nicht verändert wird, muss zwingend eine Kopie auf Blocklevel durchgeführt werden.
Die Handhabung von VHD Resizer ist einfach, nach der Installation muss lediglich das Source und Target VHD Image, sowie die neue Grösse (maximal 127 GB) angegeben werden, damit der Kopiervorgang gestartet werden kann. Ist die Datei allerdings zu diesem Zeitpunkt noch im Zugriff durch eine andere Applikation wie VPC, oder Disk Management, so wird die Meldung “Invalid Disk, please select another” ausgegeben.
Die Konvertierung in das neue VHD Image wird mit “Resize complete, resize another” abgeschlossen. Das Tool schliess sich übrigens automatisch, wenn “no” angewählt wird… Danach kann das neu angelegte Image der entsprechenden Virtual Machine hinzugefügt werden.
Download
vmToolkit VHD Resizer kann direkt beim Hersteller heruntergeladen werden.

VhdResize-1.0.42.zip (170 KB)
Update:
Das vmToolkit steht leider nicht mehr zur Verfügung!Weitere Informationen
- Server Talk: Sysinternals “Disk2vhd”
- Server Talk: How-To: Resize von VHD Files
Shortlink: https://www.server-talk.eu/?p=1932
Comments (2)
klausi says:
July 16, 2010 at 12:30 pmNach dem “select vdisk” fehlt ein “attach vdisk”
Michel says:
July 16, 2010 at 1:49 pmDanke, habe ich gerade korrigiert! Grüsse, Michel