Der Weg zu Boot-fähigen VHD-Dateien
2. März 2011Mit der Einführung von Windows 7 und dem Windows Server 2008 R2 hat Microsoft die Windows-Betriebssysteme um einige interessante Fähigkeiten erweitert. Dazu gehört auch die Möglichkeit, ein physisches System direkt von einer virtuellen Festplatte (VHD – Virtual Hard Disk) aus zu starten. Systemspezialist Mark Minasi stellt in einer lockeren Serie die Tools vor, mit deren Hilfe Administratoren diese Eigenschaft von Windows besser nutzen können.
Bis zur Einführung von Windows 7 und der zeitgleichen Bereitstellung des Windows Servers 2008 in der R2-Version war es zumeist eine Festplatte, die physikalisch in einem System vorhanden war, von der aus ein Windows-Betriebssystem startete. Zudem handelt es sich dabei häufig traditionell um das Laufwerk mit dem Buchstaben „C:“. Die Fähigkeit der neuen Windows-Versionen, auch einen Start vom einem Boot-Laufwerk auszuführen, das „nur“ in einer virtuellen Festplatte zur Verfügung steht, bietet gerade für den Systembetreuer eine Menge neuer Möglichkeiten.
Mark Minasi erläutert hier in einem ersten Artikel die grundlegenden Aspekte dieser Technik und stellt ein Werkzeug vor, das die Arbeit damit erleichtert. In weiteren Artikel, die wir in den nächsten Wochen hier auf NT4Admins veröffentlichen werden, zeigt er dann auch, wie andere Werkzeuge beispielsweise zur Vorbereitung der Systeme und zum Anlegen von Systemabbildern diesen Werkzeugkasten ergänzen.
Warum sollte ein System aus einer VHD starten?
Wer sich erstmals mit dem Problem eines Systemstarts von einer virtuellen Festplatte befasst, wird sich vielleicht die Frage stellen, warum ein System aus einer VHD (Virtual Hard Disk) starten sollte. Es existiert sicherlich eine ganze Reihe von Gründen, die einen solchen Einsatz einer VHD rechtfertigen – für Administratoren sind es aber ohne Zweifel die vielen Vereinfachungen entscheidend, die sich durch den Einsatz dieser Technik beim Ausrollen der Betriebssysteme ergeben können.
Wie kommen Betriebssysteme in der Regel auf die Workstations und PCs? Natürlich kann der Systemverwalter sie manuell installieren, in dem er die Installations-DVD in das jeweilige Laufwerk eines Systems befördert, dieses hochfährt und eine Reihe von (bei Windows 7 nicht mehr so vielen) Fragen beantwortet. Will er sich einfacher machen, so kann ein entsprechendes Installations-Skript verwenden, das eine unbeaufsichtigte Installation des Betriebssystems ermöglicht.
Die heute weitaus häufiger zum Einsatz kommende Möglichkeit besteht darin, eine der vielen Softwarelösungen zum Erstellen von Betriebssystem-Images einzusetzen, die auf dem Markt verfügbar sind. Damit kann dann auch ein entsprechend nach den eigenen Wünschen zusammengestelltes Images relativ bequem auf die Rechner im eigenen Netzwerk gebracht werden. Die Symantec-Ghost-Lösungen gehören hier sicher zu den bekanntesten Tools aus diesem Umfeld. Microsoft bietet zudem mit ImageX eine freie Lösung an, auf die unser Autor in Rahmen dieser Artikelreihe auch noch näher eingehen wird.
Ein Nachteil beim Einsatz dieser Art von Werkzeugen besteht darin, dass es für den Administrator nicht immer völlig transparent ist, was beispielsweise während der Übertragung eines Abbildes geschieht: Geht bei einem derartigen Vorgang was schief, so lässt sich häufig nur schwierig feststellen, wo die Ursachen für das Problem zu finden sind.
Im Gegensatz dazu verlangt der Start des Betriebssystems aus einer VHD-Datei nicht mehr, als dass eine entsprechend vorbereitete virtuelle Festplatte auf die „echte“ Festplatte des Zielsystems gebracht wird. Man könnte diese Art der Verteilung auch als „Xcopy Deployment“ bezeichnen.
Es existiert aber noch ein weiterer Grund, der für den Einsatz dieser Technik spricht: Virtuelle Festplatten sind einfach zu handhaben, wenn es um das Ausrollen geht. Systembetreuer, die ihre System-Images in VHD– und nicht GHO– (Dateien von Symantec Ghost) oder WIM-Dateien (Standardformat für Image-Dateien unter Windows) ablegen, können diese in Zweifelsfall schnell ausrollen, indem sie sie auf das Zielsystem kopieren.
Sie können aber ebenso leicht unter Hyper-V eine virtuelle Maschine rund um das in der VHD abgespeicherte Image erstellen und starten. Microsoft hat noch einen weiteren Schritt unternommen, der die Attraktivität dieses Wegs steigert: So habe die Entwickler eine Unterstützung für VHD-Dateien in die Windows-Deployment-Dienste (WDS – Windows Deployment Services) des Windows Servers 2008 R2 integriert.
Die Schritte zum Boot aus der VHD
Wer ein Boot-fähiges System innerhalb einer VHD-Datei anlegen will, muss dazu verschiedene Schritte ausführen: So gilt es zunächst einmal, ein generalisiertes (generalized – ein Ausdruck, der von Microsoft für ein System benutzt wird, das mit „sysprep“ entsprechend vorbereitet wurde) Windows7- oder Windows Server 2008 R2-System in einer VHD bereitzustellen. Weiterhin wird dann eine VHD-Datei benötigt, die ein Boot-fähiges Windows-Laufwerk beinhaltet. Der Administrator muss dazu also zunächst einmal eine leere VHD-Datei anlegen. Wie dies schnell und einfach mit Hilfe des „diskpart“-Kommandos erledigt werden kann, haben wir bereits in einem Artikel hier auf NT4Admins gezeigt.
Danach gilt es ein Boot-fähiges System zu nehmen, dies mit Hilfe von „sysprep“ entsprechend zu bearbeiten und dieses System dann mit Hilfe einer Boot-CD (beispielsweise mit WinPE) zu starten. Nun muss ImageX mit seiner „capture“-Option zum Einsatz kommen, um aus diesem System eine WIM-Datei zu erstellen. Dann muss der Administrator die VHD-Datei unter einem Laufwerksbuchstaben mounten und wiederum mit Hilfe von ImageX (dieses Mal mit der „append“-Option) das eben erstellte Boot-fähige Image dieser VHD hinzuzufügen. Danach ist die Arbeit getan, und das VHD-File kann auf neuen virtuellen oder auch „echten“ Systemen ausgerollt werden, die dann davon starten werden.
Dieser kurze Überblick zeigt, dass doch eine Reihe von Schritten zur Erstellung eines solchen Images nötig ist, von denen wir die meisten noch detaillierter in weiteren Artikel präsentieren und erläutern werden. Aber wie schon in vielen Fällen zuvor, haben die nun zu Microsoft gehörenden Mitarbeiter von Sysinternals rund um Mark Russinovich ein Werkzeug entwickelt, das unteren auch dazu in der Lage ist, diesen Weg deutlich abzukürzen.
Ein Werkzeug bringt Hilfe in einigen Fällen
Wir haben auch dieses Werkzeug mit dem Namen „Disk2VHD“ schon einmal auf NT4Admins vorgestellt. Dieses sehr schöne Tool ist dazu in der Lage, Laufwerke auf aktiven Windows-Systemen direkt in eine oder auch mehrere VHD-Dateien zu kopieren: Ein Systemverwalter braucht dazu dann kein ImageX, kein WinPE oder „sysprep“ mehr. Dieser Weg funktioniert so einfach, weil er den Dienst mit der Bezeichnung „Volume Shadow Copy Service“ (VSS) ausnutzt.
Die grundlegende Syntax dieses Befehls ist dabei sehr einfach:
disk2vhd <Laufwerk> | * <Name der VHD-Datei>
Ein Beispiel aus der Praxis, das eine VHD-Datei mit dem Laufwerk C: als Inhalt anlegt, besitzt dann die folgende Form
disk2vhd c: E:\imageC.vhd
Sollen alle Volumen einer Festplatte in einer VHD-Datei abgelegt werden, so gelingt dies unter Zuhilfenahme des Wildcard-Zeichens „*“. Dabei werden auch die Volumen mit kopiert, die keinen Laufwerksbuchstaben besitzen. Wer nicht so gerne an der Kommandozeile arbeitet, kann durch einen einfachen Aufruf von „disk2vhd“ auf die grafische Oberfläche der Software starten und von dort aus die gleichen Aufgaben ausführen. Hier nun der Aufruf von der Kommandozeile, der alle Volumen einer Platte in eine VHD-Datei kopiert:
disk2vhd * E:\alle_zusammen.vhd
Diese Vorgehensweise wird allerdings nur in einigen, spezifischen Testsituationen wirklich zufriedenstellend funktionieren: Jeder Administrator weiß, dass die Vorgehensweise einfach das Image einer bestehenden Installation zu kopieren und beliebig oft auf verschiedenen Maschinen auszurollen, eine Menge Probleme in Hinblick auf die Sicherheit verursachen wird. Für umfangreichere und praxisnähere Szenarien wird sich ein Systemverwalter deshalb mit „sysprep“ beschäftigen müssen, um generische Image-Dateien zu erstellen. Dies werden wir in einem weiteren Artikel erläutern, der uns dann weiter auf den Weg zu einer Boot-fähiger VHD-Dateien bringen wird.