Diskpart.exe übernimmt die Kontrolle über VHDs
2. Juni 2010In drei Artikeln hier auf NT4admins hat unser Komandozeilen-Experte Mark Minasi schon einige der Neuerungen und Besonderheiten vorgestellt, die Microsoft bei den aktuellen Windows-Systemen mit der Software diskpart.exe bereitstellt. In diesem vierten Teil unserer kleinen Artikelreihe demonstriert er nun, wie der Administrator dieses Werkzeug einsetzen kann, um mit den VHD-Dateien der virtuellen Maschinen zu arbeiten.
Im ersten Teil dieser Artikelreihe rund um diskpart ging es darum, wie mit Hilfe
des Kommandozeilen-Programms die Partitionen auf Festplatten angesehen,
ausgewählt und angelegt werden können. Ein zweiter Beitrag zeigte dann die
Formatierung und das Zuweisen von Laufwerksbuchstaben an diese
Festplattenbereiche.
Im dritten Teil der Serie hat Mark Minasi schließlich gezeigt, wie das Kommando „create vdisk“ dazu genutzt werden kann, eine Datei im Format VHD (Virtual Hard Disk) direkt und ohne eine Virtualisierungs-Software anzulegen. In diesem Artikel haben wir dann auch demonstriert, wie mit dem folgenden Kommando eine virtuelle Festplatte mit einer Größe von 200 MByte direkt im Dateisystem unseres Testrechners angelegt wurde:
create vdisk file=“T:\tmp\testorette.vhd“ maximum=200
Dieses Mal soll es nun also darum gehen, solch eine VHD-Datei unter Einsatz des diskpart-Kommandos auch direkt von der Kommandozeile aus zu verwenden und zu bearbeiten.
Um das zu tun, benötigt der Administrator noch einige weitere Befehle innerhalb
der diskpart-Software, wie etwa „select“ und „attach“. Wer das „select“-Kommando mit dem von uns beschriebenen Beispiel ausführt, wird eine Anzeige in der Konsole bekommen, die dem folgenden Aufruf ähnlich sieht:
DISKPART > select vdisk file=“T:\tmp\testorette.vhd“
Die Datei für den virtuellen Datenträger wurde von DiskPart erfolgreich ausgewählt
DISKPART >
Das Kommando „select vdisk“ stellt Anwender 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 nicht aufgetreten. Im Normalfall wird die Abarbeitung beim Auftreten eines Fehlercodes abgebrochen, was aber gerade innerhalb von Skripten oft nicht erwünscht sein dürfte, so dass dieser Parameter in solchen Fällen oft zum Einsatz kommt.
Von der Kommandozeile: Arbeiten mit der virtuellen Festplatte
Aber auch nach Einsatz dieser Kommandos ist ein Anwender nicht in der Lage, in diese „gedachte“ Festplatte hinein zu schauen oder gar Dateien in diesem Bereich anzulegen. Wer also eine virtuelle Festplatte angelegt und wie zuvor gezeigt ausgewählt hat, kann nun das „attach“-Kommando von diskpart dazu verwenden, sie mit seinem Window-System zu verbinden. Für das Betriebssystem sitzt diese Festplatte wie jede andere „normale“ Festplatte aus. In seiner einfachsten Form besitzt der Aufruf dann die folgende Form:
DISKPART > attach vdisk
100 Prozent bearbeitet
Die 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. Dann übermittelt es dem Betriebssystem die Nachricht, dass nun eine neue Festplatte zur Verfügung steht. Wer sein System mit Lautsprecher ausgestattet hat, wird zu diesem Zeitpunkt auch das entsprechende Systemsignal hören, das ihm mitteilt, dass eine neue Hardware zur Verfügung steht. Dieser Datenträger ist zu diesem Zeitpunkt aber weder initialisiert oder gar formatiert, wie der Screenshot der Datenträgerverwaltung in Bild 1 zeigt.
Ein Systemverwalter kann diese Festplatte nun aber mit all den Kommandos, die wir besonders in den ersten beiden Teilen unserer Serie vorgestellt haben, problemlos auf die gleiche Art und Weise behandeln, wie er dies bei einer normalen „echten“ Festplatte auch tun würde. So bietet sich nun als nächster Schritt das Anlegen einer Partition gefolgt von dem Zuweisen eines Laufwerkbuchstabens und der anschließenden Formatierung des virtuellen Datenträgers an. Die in der folgenden Auflistung gezeigten Befehle führen diese Aufgaben durch. Wir haben in dieser Darstellung darauf verzichtet, die entsprechenden Rückmeldungen des diskpart-Programms mit aufzulisten. Sie werden aber alle vollständig in dem Screenshot gezeigt, der in Bild 2 den kompletten Ablauf beim Anlegen und Erstellen der virtuellen Platte demonstriert.
create partition primary
assign letter=v
format FS=NTFS label=gedacht quick
Nach Aufruf dieser Befehle, die auch in ihrer kompletten Reihenfolge in Bild 2 zu
sehen sind, steht die neue virtuelle Festplatte zum Einsatz zu Verfügung, wie der Explorer-Aufruf im Bild 2 ebenfalls demonstriert. 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 bei Start ein entsprechendes Skript mit den diskpart-Kommandos ausführen, mit deren Hilfe die Platte in das System eingebunden wird.
Virtuelle Festplatten auf dem System finden und auch davon trennen
Soll die Platte ohne Neustart wieder vom System getrennt werden, so gelingt das ebenfalls mit Hilfe von zwei einfachen Kommandos des diskpart-Programms:
select vdisk file=t:\tmp\testoretto.vhd
detach vdisk
Während die meisten Anwender und Administrator das im letzten Artikel
vorgestellte Kommando „create vdisk“ eher selten einsetzen werden, werden die Kombinationen aus „select“ und „attach“ beziehungsweise „detach“ sicher häufiger zum Einsatz kommen. Vielen Anwendern scheint es dabei zunächst nicht klar zu sein, dass es ihnen freisteht so viele dieser virtuellen Festplatten mit dem System zu 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 und so alle drei virtuellen Festplatten in sein System integrieren und dann mit diesen arbeiten.
Ist nun beispielsweise ein Administrator gezwungen mit einem System zu arbeiten, über das er zuvor keine Informationen bekommen hat, so kann er sich dabei vielleicht mit einer überwältigenden Anzahl an Laufwerksbuchstaben konfrontiert sehen. Er muss sich dann fragen, welche dieser Festplatten virtuelle Platten sind und bei welchen es sich um normale Festplatten handelt. Arbeitet der Systemverwalter dabei an einem System, das mit der vollständigen Windows-Oberfläche ausgestattet ist, gelingt dies sicher am einfachsten über die Datenträgerverwaltung (Logical Disk Manager – LDM), die entweder in der Computerverwaltung zu finden ist oder durch den folgenden direkten Aufruf
diskmgmt.msc
gestartet werden kann. Während „normale“ Festplatten in dieser Anwendung mit einem grauen Symbol dargestellt werden, sind die virtuellen Festplatten daran zu erkennen, dass sie mit einem blaugrünen Festplattensymbol angezeigt werden. Kommt allerdings ein Server Core System ohne grafische Oberfläche zum Einsatz oder der Administrator greift über ein Remote-Tool wie WinRS oder PSexec auf das System zu, so kann auch hier wieder das diskpart-Kommando zum Einsatz kommen. Dazu muss er von der Kommandozeile der Software aus den folgenden Befehl absetzen:
list vdisk
Wie bereits in den anderen Artikel erläutert, dient das list-Kommando grundsätzlich dazu, alle mit dem System verbundenen Laufwerke aufzulisten. Auf Windows-Systemen, die eine VHD-Unterstützung bieten, zeigt das Kommando jedoch eigentlich nur die Festplatten an, die lokal sind. Die Einschränkung in dieser Aussage müssen wir deshalb machen, weil gemappte Laufwerke im System mittels dieses Befehls nicht angezeigt werden können, iSCSI-LUNs und mit dem System verbundene virtuelle Festplatten bei diesem Aufruf aber sehr wohl aufgelistet werden. So werden dem Administrator beim Aufruf von „list disk“ oder „list volume“ keine Merkmale angezeigt, die es ihm erlauben, diese Festplatten zu unterscheiden.
Auch beim oben gezeigten Aufruf ist es nicht möglich, direkt zwischen einer virtuellen Festplatte und einer solchen zu unterscheiden, die über iSCSI angebunden wurde. Hier bleibt dann aber noch eine Möglichkeit offen. Mit den folgenden zwei beispielhaften Befehlen:
select disk volume 13
detail disk
Msft Virtual Disk SCSI Disk Device
Datenträger-ID: "A03F9067"
Typ : "Virtuell"
Status : "Online"
Pfad : "0"
Ziel : "0"
LUN-ID : "2"
…
…
bekommt er eine sehr ausführliche Beschreibung angezeigt, die wir hier nur auszugsweise darstellen. So kann er dann eindeutig feststellen, ob es sich bei dem fraglichen Gerät um eine virtuelle Festplatte handelt.