Sysinternals-Tool migriert P2V
30. Dezember 2009Ein kostenloses Tool für die schnelle Umwandlung von Festplatten-Images in virtuelle Festplatten stellen Mark Russinovich und Bryce Cogswell aus der ehemaligen Sysinternals-Crew zum Download bereit. Dieses Programm liegt als gezippte Datei vor (mit etwa 760 KByte) und konvertiert eine laufende physische Maschine in eine Virtual Hard Disk (VHD) und zwar im Festplatten-Format einer Virtual Machine (VM) von Microsoft. Diese VMs lassen sich dann auf einen Server mit Hyper-V oder aber auf ein System mit Virtual PC hochladen und dort einsetzen. Für die Konvertierung der Festplatten-Images kann das Programm über einen englischsprachigen Dialog bedient werden, in dem sich die gewünschten Laufwerke angeben lassen. Es besteht aber auch die Möglichkeit, das Tool über die Kommandozeile aufzurufen und es somit in eigene Skripts einzubinden.
Anrufe beim Support von Microsoft gehören zum Alltag für die meisten Administratoren auf Windows-Plattformen. Doch diese Anfragen müssen nicht besonders zeitaufwändig sein. Es gibt viele Dinge, die der Administrator vorbereiten kann und damit spart er beim Anruf im Support mächtig Zeit – vor allem wenn es um das Erklären des Problems, um das Sammeln der Daten oder das Ausführen eine Anzahl von Schritten in Richtung Fehlerbehebung geht.
Wenn die Betreuer bei Microsoft schnell in der Lage sind, das Problem zu verstehen und nachzuvollziehen, dann ist das schon eine gute Ausgangsposition für die Problemlösung. Als Resultat werden dann die Lösungsvorschläge binnen Stunden oder gar Minuten zur Verfügung stehen – so die Theorie.
Doch damit die Support-Abteilung von Microsoft das Problem versteht, genügt es nicht, einige Schritte aufzulisten, über die man an das Problem gekommen ist. Denn vielfach ist der Zustand des Betriebssystems zum Zeitpunkt des Fehlers wichtig. Daher lässt sich auf einem „sauberen“ System oft der Fehler nicht nachvollziehen, selbst wenn man genau dieselben Schritte ausführt.
Somit wäre ein Tool sehr hilfreich, mit dem sich diese Informationen alle heranziehen lassen. Und wie so oft gibt es ein Werkzeug aus dem Sysinternals-Umfeld – sprich von Bryce Cogswell und Mark Russinovich: Disk2vhd.
Einsatzbeispiele für Disk2vhd
Das Tool aus der mittlerweile von Microsoft aufgekauften Sysinternals-Truppe steht kostenlos über die Technet-Seite von Microsoft zur Verfügung. Das Programm liegt als gezippte Datei vor (mit etwa 760 KByte) und konvertiert eine laufende physische Maschine in eine Virtual Hard Disk (VHD) und zwar im Festplatten-Format einer Virtual Machine (VM) von Microsoft.
Liegt das betreffende System im .vhd-Format vor, können Mitarbeiter im Support sehr schnell das komplette Image entweder auf einem Hyper-V oder aber auf Virtual PC hochladen und dort das Problem elegant reproduzieren.
Doch nicht nur für diese Art der Fehlersuche eignet sich Disk2vhd: Auch wenn Serverkonsolidierung angesagt ist oder aber immer wenn man ein physisches System in eine VM zu überführen hat, eignet sich dieses kleine Programm.
Eine andere Methode, um derartige P2V-Migrationen auszuführen, bietet der System Center Virtual Machine Manager (SCVMM). Eine Evaluierungs-Kopie dieses mächtigen Tools steht auf der Microsoft-Site zum Download bereit.
Doch dieses Softwarepaket ist größer als 1 GByte und seine Installation sowie die Konfiguration bereitet weit mehr Aufwand als das Installieren von Disk2vhd. Wer nur eine Möglichkeit sucht, ein physisches System in eine VM zu überführen, für den ist Disk2vhd die erste Wahl. Und vor allem die Administratoren, die mit dem Support von Microsoft Kontakt haben, wird es sich als exzellentes Werkzeug erweisen.
Das Werkzeug erstellt ein .vhd-Image, das native für Hyper-V oder Virtual PC konzipiert ist. Damit wird diese VM genau so ausgeführt, wie das ursprüngliche System zum Zeitpunkt der Konvertierung ausgesehen hat.
Der Einsatz von Disk2vhd
Das Arbeiten mit dem Tool ist sehr intuitiv. Nach dem Download muss der Administrator die Datei entzippen. Dann liegt die Datei Disk2vhd.exe (etwa 1600 KByte groß) vor, die er einfach starten kann. Zuerst ist dem Lizenzabkommen zuzustimmen und dann zeigt das Tool, wie die aktuelle Konfiguration der Festplatten auf dem physischen System aussieht.
Der Dialog ist in englischer Sprache gehalten, länderspezifische Varianten existieren nicht. Es sind vom Administrator lediglich die Laufwerke anzuklicken, die konvertiert werden sollen. Damit auch genügend Platz zur Verfügung steht, zeigt der Dialog an, wie viel Festplattenplatz frei ist und wie viel für die Konvertierung benötigt wird.
Es darf dabei auch die Sondersituation auftreten, dass die VHD-Datei auf demselben Laufwerk abgelegt, das konvertiert werden soll – es muss nur genügend freier Platz verfügbar sein. Möchte man das Laufwerk C konvertieren, darf die VHD-Datei auch auf C abgelegt werden.
Aus Sicht der Performance ist das aber weniger ratsam. Am schnellsten – so Mark Russinovich auf der Website zu Disk2vhd, läuft die Konvertierung, wenn die Datei auf einem anderen Laufwerk abgelegt wird, als auf dem, das konvertiert werden soll.
Der Autor hat auf einem Dell Precision 380 mit einem Arbeitsspeicherausbau von 4 GByte mit Windows 7 Disk2vhd ausgeführt. Es dauerte etwa 10 Minuten, um das Image in eine VHD-Datei zu überführen. Danach konnte er das Image auf Hyper-V laden und dann mit dem System arbeiten, als wäre es das physische System selbst.
Ein anderes System (HP mit Intel Dualcore 2 Duo, E4500, 2,2 GHz, 4 GByte Arbeitsspeicher, 32-Bit Vista Business, Servicepack 2 mit allen aktuellen Betriebssystem-Patches) wurde so konfiguriert, dass das C-Laufwerk mit etwa 150 GByte Kapazität (und davon waren 74 GByte belegt) umgewandelt werden sollte. Dabei war das Ziellaufwerk einmal eine externe Festplatte (über USB 2.0 angebunden). Hierbei lief die Umwandlung viel langsamer ab. Für das Erstellen der knapp 49 GByte großen VHD-Datei mit dem Festplatten-Image lief das System etwa eine Stunde und 15 Minuten.
Beim zweiten Lauf auf diesem System wurde die Option gewählt, die VHD-Datei auf demselben Laufwerk abzulegen, von dem auch das Image umgewandelt werden sollte. Das dauerte dann eine Stunde und sieben Minuten – war also schneller als der Weg über die externe USB-Festplatte. Will man die VHD-Datei aber nicht über das Netzwerk, sondern mit der externen Festplatte transportieren, muss man die Zeit für das Kopieren noch dazu rechnen.
Will man die so erzeugte VHD auf Virtual PC starten, muss man aufpassen, wenn die VHD groß wird: Virtual PC erlaubt eine maximale Größe für die VHD von 127 GByte. Eine weitere Einschränkung ergibt sich, wenn man die VHD demselben System hinzufügen will, auf dem sie erstellt wurde und wenn man dann auch noch davon booten möchte.
Denn Windows weist der VHD eine neue Festplatten-Signatur zu und vermeidet damit eine Kollision mit der Signatur der ursprünglichen Festplatte. Windows bezieht sich beim Systemstart über die Signatur auf die Festplatte, die in der BCD (Boot Configuration Database) steht. Damit kann Windows beim Booten aus der VHD die Festplatte nicht finden.
Liegt das Image dann in Form einer VHD vor, kann der Administrator dann dieses virtuelle System auf dem Hyper-V oder Virtual PC laufen lassen. Beim Hyper-V lässt sich diese VHD dann zwar nicht direkt importieren (das will das System nur für die VHDs zulassen, die auch mit dem Hyper-V angelegt wurden; so lautet die Fehlermeldung). Doch wenn der Administrator zuerste eine VM mit den gewünschten Eigenschaften (Prozessoren, Arbeitsspeicher, etc.) anlegt, kann er die VHD bei dem Dialog mit der Angabe der virtuellen Festplatte spezifizieren. Dann holt sich das System diese Infos und wird in der Regel einen Neustart der VM verlangen, weil doch einige Treiber neu installiert wurden.
Einfach ausprobieren
Mit diesem kostenlosen Tool haben Mark Russinovich und Bryce Cogswell erneut ein sehr wertvolles und leicht einzusetzendes Werkzeug geschrieben. Es erledigt seine Aufgaben mit extrem wenig Aufwand. Zudem ist das Tool auch von der Kommandozeile aus startbar und damit lässt es sich auch in Skripts einbauen.
Die zugehörige Syntax sieht wie folgt aus:
disk2vhd <[drive: [drive:]…]|[*]> <vhdfile>
Ein Beispiel dazu könnte lauten:
disk2vhd * c:\vhd\snapshot.vhd
Mit der Angabe des * kann man alle Volumes selektieren.