Natives Booten von VHD

Update am 24.07.2009: Dieser Artikel ist veraltet. Die hier beschriebene Vorgehensweise funktioniert technisch, wird aber von Microsoft nicht supported. Die richtige Vorgehensweise ist in folgendem Artikel beschrieben: Native VHD Support in Windows 7 . Vielen Dank an den Leser Stephan Perschke für den netten Hinweis.

Gastbeitrag von Georg Binder , selbständiger IT-Dienstleister und Autor von vistablog.at , auf dem er seit über zwei Jahren Windows Vista und in Zukunft Windows 7 vorstellt, um sie gemeinsam mit Interessierten zu diskutieren und hinterfragen.

Da sich eh alle Welt auf die GUI Elemente stürzt (und da gibt’s wahrlich viel zu entdecken) habe ich mich am Wochenende mit etwas anderem gespielt: nativem Booten von VHDs.

Schritt 1:
Gedankliche Aufgabe. Wo sollen die VHDs liegen? Wenn man eh nur eine Partition hat ist es leicht, sonst eben dran denken, dass (so viel ich gelesen habe) das pagefile außerhalb der VHD angelegt. Also sollte auf der Partition noch etwas Platz sein.

Schritt 2:
Booten von Windows 7 DVD (oder WinRE). Computerreparaturoptionen wählen, SHIFT-F10 für die Kommandozeile.

Man muss jetzt die VHD, die man wie hier beschrieben erstellt hat, erst zum Vorschein bringen. Das Tool dazu ist das vielleicht schon bekannte diskpart. Hier die Befehle der Commandline. Alle Pfade an das eigene System anpassen!

 diskpart
list disk // Bei mehreren Platten
list volume // Um die Pfade herauszubekommen
//nächste Zeile nur dann, wenn man noch keine VHD hat. 
create vdisk file=d:\VHD\Meinw7.vhd type=fixed maximum=20000 
select vdisk file=d:\VHD\MeinW7.vhd
attach vdisk
exit //beendet diskpart
exit //beendet die cmd

Update: die VHD darf nicht den Namen “windows” beinhalten. Danke an David Klitzsch für den Hinweis!

IMG_8990

Schritt 3:
Dann – ohne Neustart! – das Setup weiterausführen. Nicht verwirren lassen: hat mich eine Stunde gekostet, in der Partitionsauswahl steht eine Warnung bei der Auswahl des VHD Partition dass Windows nicht installiert werden kann,… einfach ignorieren und auf weiter klicken. Der Rest ist wie gehabt,… Standard Windows 7 Installation.

Schritt 4:
Nix mit Schritt 4, nur noch Kosmetik, man wird wahrscheinlich noch mit bcdedit die Einträge verhübschen wollen, vor allem dass man die beiden auseinanderhalten kann (heißen ja nun beide “Windows 7”. Übrigens… bin nicht sicher, aber ich glaube mir hat EasyBCD einmal die Konfig ziemlich zusammengehaut, ich hab’s dann doch lieber händisch mit bcdedit gemacht.

Ergebnis:
Ich kann nun direkt aus dem Bootloader das VHD auswählen und starten.

IMG_8992

Der untere Screenshot stammt von einem aus einer VHD gebooteten Windows 7, voll funktionsfähig, alle Hardware im Direktzugriff. Dass die Schreibzugriff über einen Treiber umgeleitet werden, wird zwar verlangsamen, aber es ist zumindest beim “Office-Gebrauch” nicht spürbar.

VHD_Boot

Zur Erklärung, die 20 GB Partition (Datenträger 1) ist ein VHD File, das physisch auf Datenträger 0 in der Partition D: liegt.

Offene Fragen
Die Fragen mögen vielleicht ja gar nicht so kompliziert sein, nur hatte ich noch nicht die Zeit die Antworten zu suchen. Wenn wer was weiß (Doku,…), dann her mit den Infos.

  • Gehen nur Windows 7 und Server 2008 R2? Oder kann man irgendein “legacy” System da auch mit dem dem richtigen Treiber beglücken, also vorrangig Vista, oder eben auch XP? Wahrscheinlich wird man auch vorher den HAL ändern müssen, zumindest bei XP, Vista sollte den ja selbst ändern können.
  • In wie weit lassen sich bestehende VHDs verwenden? Oder eventuell mit vmware converter p2v…?
  • Wo ist der dynamische Bootmanger, damit man da noch einfacher die Dinge reinhängen kann, ohne ewig mit bcdedit herumzustreiten? Feature request!
  • Wie sieht denn das lizenzrechtlich aus? Vermutlich brauche ich auch da pro Instanz eine Lizenz, so wie auch bei VPC. Oder die VECD Lizenz. Hmm.
  • Kann ich da auch über USB booten? Mist, Wochenende schon um,…

Quellen/Mehr Info: