VHD-Dateien mit diskpart bearbeiten

Workshop: Mit Windows-Tool virtuelle Festplatten verwalten

07.03.2013 von Frank-Michael Schlede
Viele Systemverwalter wissen, dass sich diskpart sehr gut dazu eignet, die Festplatten und deren Partitionen zu verwalten. Weniger bekannt ist, dass dieses Werkzeug auch mit den VHD-Dateien der Virtualisierungslösungen umgehen kann: Unser Workshop zeigt, wie "diskpart.exe" virtuelle Festplatten verwaltet.

Wir haben auf TecChannel bereits in einem ausführlichen Artikel (siehe auch Diskpart - Festplatten auf der Kommandozeile managen) über die Features und Möglichkeiten berichtet, die unter Windows 7 und auf Windows Server 2008 R2 mit dem Kommandozeilen-Tool diskpart.exe zur Verfügung stehen.

Bildergalerie:
Diskpart-Praxis
Virtuelle Festplatte direkt an der Kommandozeile erstellen: Das Programm diskpart macht’s möglich.
Diskpart-Praxis
Nach dem Erstellen der virtuellen Platte: Im Explorer erscheint sie wie eine normale Platte, allerdings „weiß“ das Betriebssystem, dass dieser Name eine virtuelle Festplatte kennzeichnet.
Diskpart-Praxis
Das Unterkommando „select“ mit dem Zusatz „vdisk“: Auf diese Weise wird der Fokus des diskpart-Programms auf die gerade erstellte virtuelle Festplatte gelegt.
Diskpart-Praxis
Mit dem „attach“-Kommando wird die – zu diesem Zeitpunkt noch unformatierte Platte – mit dem Betriebssystem verbunden.
Diskpart-Praxis
Eine neue Festplatte im System: Für das Windows-System ist es dabei völlig egal, dass es sich hierbei „nur“ um eine virtuelle Festplatte handelt. Zur Unterscheidung wird sie aber in der Datenträgerverwaltung in einer anderen Farbe dargestellt.
Diskpart-Praxis
Der Ablauf in der Übersicht: Auswahl, Verbindung und dann die Bearbeitung der virtuellen Platte, sodass sie anschließend dem System und seinen Anwendern zur Verfügung steht.
Diskpart-Praxis
Alles wieder zurück: Zwei Befehle, und die virtuelle Platte ist wieder aus dem System „verschwunden“. Auch ein Reboot würde sie automatisch entfernen.

Auch über die guten Gründe und Vorteile, die sich auch in einer Windows-Welt mit ihrer ausgefeilten grafischen Oberfläche durch den Einsatz solcher Werkzeuge "direkt am Prompt" ergeben, wurde an dieser Stelle schon vielfach berichtet, beispielsweise in dem Beitrag Clevere Kommandozeilen-Tools und Tipps für Windows.

Wir werden uns deshalb in diesem Artikel auf die neuen Fähigkeiten von diskpart konzentrieren, die sich auf die Arbeit mit und rund um die virtuellen Festplatten, die VHD-Dateien (Virtual Hard Disk), beziehen.

Es müssen nicht unbedingt "echte" Festplatten sein

Mit dem VHD-Format steht eine Art Container zur Verfügung, der das Image einer Festplatte beinhaltet. Die VHD-Dateien wurden zunächst einmal dazu entwickelt, den virtuellen Maschinen (VMs) Speichermedien zur Verfügung zu stellen. Das Format wurde ursprünglich von der Firma Connectix entwickelt, die als einer der ersten Anbieter mit einer Virtualisierung für Windows-PCs (Virtual PC) auf den Markt kam. Die Firma wurde dann von Microsoft übernommen, als man sich auch im Bereich der Virtualisierung zu engagieren begann. Im Juni 2005 hat man sich bei Microsoft dann dazu entschlossen, die Spezifikationen für dieses Format unter der sogenannten "Microsoft Open Specification Promise" auch für andere Anbieter verfügbar zu machen.

Sowohl bei den Windows-7-Systemen (allerdings komplett nur in der Varianten Ultimate und Enterprise) als auch bei den verschiedenen Versionen von Windows Server 2008 R2 wird dieses Format direkt vom Betriebssystem unterstützt. Sie bieten dabei grundsätzlich die folgenden Möglichkeiten:

• das direkte Booten aus einer VHD-Datei,

• das Einbinden (mounten) der VHD mittels der Datenträgerverwaltung und mithilfe von diskpart.exe,

• ein Einhängen der VHD-Dateien innerhalb anderer VHD-Dateien und schließlich noch

• die Verwendung der VHD-Dateien für Systemabbilder. Diese können dann direkt in das Betriebssystem eingebunden werden, sodass aus ihnen auch direkt Dateien und Verzeichnisse extrahiert werden können.

Die VHD-Dateien werden schon allein deshalb weiterhin bei Betriebssystemen zum Einsatz kommen und sich zu einem Standarddateiformat für viele Einsatzzwecke in der Windows-Welt entwickeln. Für die Administratoren heißt das auch, dass sie entsprechende Werkzeuge benötigen, mit denen sie dieses Dateiformat bearbeiten und verwalten können. Unter den Betriebssystemversionen Windows 7 Enterprise, Windows 7 Ultimate und Windows Server 2008 R2 heißt dieses Werkzeug ohne Frage diskpart. Mit dem Programm ist es möglich, VHD-Dateien direkt neu anlegen oder existierende virtuelle Festplatten in diesem Format zu untersuchen. Zudem kann den virtuellen Festplatten auch ein Laufwerksbuchstabe zugewiesen werden, damit sie wie eine normale Festplatte verwendet werden können.

Erster Schritt: VHD-Datei anlegen

Das Handling der VHD-Dateien mittels dieses Kommandozeilenprogramms ist relativ einfach, wie dieser erste grundsätzliche Aufruf zum Anlegen eines solchen Dateicontainers zeigt. Dazu ist natürlich, wie schon in unserem einführenden Artikel (siehe auch Diskpart - Festplatten auf der Kommandozeile managen) beschrieben, zunächst der eigentliche Aufruf des Programms diskpart durchzuführen.

diskpartcreate vdisk file=<Dateiname> maximum=<Größe in MByte>

Wird dieser Aufruf mit "echten" Daten gefüllt, so kann er folgendermaßen aussehen:

create vdisk file="T:\tmp\test_datei.vhd" maximum=200

Wer diskpart einsetzen will, sollte dabei immer daran denken, dass die Verwendung dieses Kommandos einen sogenannten ""eleveted prompt", also eine Eingabeaufforderung mit Administratorrechten, erfordert, da es Zugriff auf entsprechend gesicherte Systemressourcen benötigt.

Diese Kommando legt dann sofort eine 200 MByte große, im VHD-Format strukturierte Datei in dem angegebenen Verzeichnis ab. Wird dieser Befehl erstmals auf einem System ausgeführt, so wird das Windows-Betriebssystem zu diesem Zeitpunkt auch automatisch den virtuellen Hostbus-Adapter (HBA) mitsamt dem entsprechenden Treiber für dieses "Gerät" installieren.

Virtuelle Festplatte direkt an der Kommandozeile erstellen: Das Programm diskpart macht’s möglich.

Eine Tatsache stört leider beim Aufruf dieses Kommandozeilenprogramms: Die Microsoft-Entwickler können sich scheinbar nicht einigen, wie sie Parameter grundsätzlich benennen. Während die Größe einer anzulegenden Datei oder auch eines Volumens ansonsten immer mit "size=" angegeben wird, hat man sich hier für "maximum=" entschieden. Eine sehr schlechte Tradition, die schon bei den alten Unix-Systemen zu finden war, bei denen jedes Kommandozeilen-Tool seine ureigene Syntax besaß.

Näher an der Praxis: die variable Größe

Bei dem zuvor gezeigten Aufruf allokiert das Programm den Speicherplatz in der Größe von 200 MByte sofort und fest auf der Festplatte. Danach findet der Anwender im Dateisystem eine 200 MByte große Datei mit dem Namen "test_datei.vhd".

Nach dem Erstellen der virtuellen Platte: Im Explorer erscheint sie wie eine normale Platte, allerdings "weiß" das Betriebssystem, dass dieser Name eine virtuelle Festplatte kennzeichnet.

Bei einer derart geringen Größe ein sinnvoller Weg -- im täglichen praktischen Einsatz werden hingegen VHD-Dateien in ganz anderen Dimensionen benötigt werden. So wird ein Anwender in der Regel zunächst noch nicht den gesamten Speicherplatz für seine zu erstellende VHD-Datei auf der Festplatte allokieren wollen. Deshalb steht die Möglichkeit einer erweiterbaren virtuellen Festplatte zur Verfügung, bei der zunächst nur ein geringer Teil des maximal zur Verfügung stehenden Speicherplatzes auf der Festplatte angelegt wird.

Der Platz wird nur dann erweitert, wenn es wirklich notwendig wird. Dies kann ganz einfach geschehen, indem das Kommando zum Anlegen der virtuellen Festplatte um den Parameter "type=expandable" erweitert wird:

create vdisk file="T:\tmp\test_datei.vhd" maximum=200 type=expandable

Wer dieses Kommando ausführt, wird feststellen, dass das Anlegen der "imaginären" Festplatte nicht nur deutlich schneller vonstatten geht, sondern dass danach im Dateisystem auch nur eine circa 3 KByte große Datei aufzufinden ist. So bekommt natürlich auch der Begriff "maximum" wesentlich mehr Sinn, legt er doch fest, bis zu welcher Grenze die virtuelle Festplatte maximal wachsen darf. Es steht auch noch die Möglichkeit zur Verfügung, diesen Aufruf mit der Einstellung "type=fixed" aufzurufen, was aber weniger sinnvoll erscheint, da er das gleiche Ergebnis zur Folge hat wie ein Aufruf ohne den "type"-Parameter.

Auswahl und Arbeit mit der virtuellen Platte

Anschließend geht es darum, auch mit dieser VHD-Datei unter Einsatz des diskpart-Kommandos direkt von der Kommandozeile aus zu arbeiten.

Das Unterkommando "select" mit dem Zusatz "vdisk": Auf diese Weise wird der Fokus des diskpart-Programms auf die gerade erstellte virtuelle Festplatte gelegt.

Dies geschieht mit einigen weiteren Befehlen innerhalb der diskpart-Software, wie etwa "select" und "attach". Wer das "select"-Kommando mit dem zuvor beschriebenen Beispiel ausführt, wird eine Anzeige in der Konsole bekommen, die dem folgenden Aufruf ähnlich sieht:

DISKPART > select vdisk file="T:\tmp\test_datei.vhd"Die Datei für den virtuellen Datenträger wurde von DiskPart erfolgreich ausgewähltDISKPART >

Das Kommando "select vdisk" stellt Anwendern keine weiteren Parameter außer "noerr" zur Verfügung. Diese Möglichkeit wird bei fast allen diskpart-Kommandos angeboten. Sie gibt der Kommando-Shell die Anweisung, bei einem auftretenden Fehler die Verarbeitung fortzusetzen, als sei dieser Fehler nicht aufgetreten.

Ausgewählt, aber noch nicht im Zugriff …

Nach Einsatz dieser Kommandos ist ein Anwender aber immer noch nicht in der Lage, in diese "gedachte" Festplatte hineinzuschauen oder gar Dateien in diesem Bereich anzulegen. Wer also eine virtuelle Festplatte angelegt und, wie zuvor gezeigt, ausgewählt hat, muss nun das "attach"-Kommando von diskpart dazu verwenden, sie mit seinem Windows-System zu verbinden.

Für das Betriebssystem sitzt diese Festplatte wie jede andere "normale" Harddisk aus. In seiner einfachsten Ausführung besitzt der Aufruf dann die folgende Form:

DISKPART > attach vdisk 100 Prozent bearbeitetDie Datei für den virtuellen Datenträger wurde von Diskpart erfolgreich angefügt

Ein Parameter wie file=<Dateiname.vhd" ist an dieser Stelle nicht notwendig - das diskpart-Programm überprüft einfach die virtuelle Festplatte, auf die zuvor der Fokus mittels des "select"-Kommandos gelegt wurde. Dieser Datenträger ist zu diesem Zeitpunkt aber weder initialisiert noch formatiert.

Eine neue Festplatte im System: Für das Windows-System ist es dabei völlig egal, dass es sich hierbei "nur" um eine virtuelle Festplatte handelt. Zur Unterscheidung wird sie aber in der Datenträgerverwaltung in einer anderen Farbe dargestellt.

Diese virtuelle Festplatte kann nun mit all den Kommandos, die wir schon in unserem ersten Artikel vorgestellt haben, problemlos auf die gleiche Art und Weise wie eine normale "echte" Festplatte behandelt werden. So bietet sich nun als nächster Schritt das Anlegen einer Partition an, gefolgt vom Zuweisen eines Laufwerkbuchstabens und von der anschließenden Formatierung des virtuellen Datenträgers:

create partition primaryassign letter=vformat FS=NTFS label=TestPlatte quick

Nach Aufruf dieser Befehle steht die neue virtuelle Festplatte zum Einsatz zu Verfügung, wie der Explorer-Aufruf im Bild sehr schön zeigt.

Der Ablauf in der Übersicht: Auswahl, Verbindung und dann die Bearbeitung der virtuellen Platte, sodass sie anschließend dem System und seinen Anwendern zur Verfügung steht.

Danach kann das Programm diskpart verlassen werden, die virtuelle Festplatte wird nach wie vor vom System wie eine normale Festplatte behandelt und verwaltet werden. Ein System-Reboot wird diese Verbindung aber nicht überstehen. Wer also eine solche Platte so einbinden will, dass sie auch bei jedem Systemneustart wieder zur Verfügung steht, muss zu diesem Zweck beim Start ein entsprechendes Skript mit den diskpart-Kommandos ausführen, mit dessen Hilfe sie dann in das System eingebunden wird.

Platte aus dem System entfernen

Soll die Platte ohne Neustart wieder vom System getrennt werden, so stellt das diskpart-Programm dafür ebenfalls zwei einfache Kommandos bereit:

select vdisk file=t:\tmp\test_datei.vhddetach vdisk

Alles wieder zurück: Zwei Befehle, und die virtuelle Platte ist wieder aus dem System "verschwunden". Auch ein Reboot würde sie automatisch entfernen.

Was vielen Anwendern zunächst nicht klar ist: Sie können so viele dieser virtuellen Festplatten mit dem System verbinden, wie sie möchten:

Wer also beispielsweise schon drei fertige VHD-Dateien auf seinem Windows-System zur Verfügung hat, kann drei Kommandopaare der Form "select vdisk/ attach vdisk" eingeben oder in einer Batch-Datei ablegen. So kann er dann schnell und einfach alle drei virtuellen Festplatten in sein System integrieren und mit diesen arbeiten. (mje)