Windows 7 in eine VHD installieren
Tja, die Nacht war für mich um drei Uhr beendet. Schlaflos in Bremerhaven. Wohl zu spät zu viel Chilli gegessen, don’t know. Zeit mal ein wenig zu frickeln und mal wieder Sachen auszuprobieren. Heute: die Installation von Windows 7 in eine VHD. Vorab die Beantwortung der Frage, was überhaupt eine Installation in eine VHD bringt. Eine VHD ist eine virtuelle Festplatte, ihr installiert euer Betriebssystem also nicht direkt auf die Festplatte (im herkömmlichen Sinne) sondern in eine Art Container. Dieser Container (bzw. das Betriebssystem darin) wird dann von einem ganz normalen Bootloader geladen. Ist simpel ausgedrückt aber sollte als grobe Erklärung reichen. Techfreaks wissen sicherlich, wo und wie sie sich schlau lesen können.
Der Vorteil von VHDs liegt auf der Hand: einfachstes Backup und die Möglichkeit ganz simpel mehrere Systeme laufen haben zu können. Ich habe das ganze mal auf einer komplett leeren 64 Gigabyte großen Festplatte installiert. Einfach mal um zu zeigen, was man für Schritte durchlaufen muss. Vieles wird man sicherlich auch woanders im Netz finden, die nötigen Quellen findet ihr am Ende des Beitrags. Damit ich euch bessere Screenshots zeigen kann, habe ich das Ganze mal in eine virtuelle Maschine (Parallels unter Mac OS X) installiert. Die Schritte sind aber identisch zur nativen Installation auf einem normalen Boliden.
Die Festplatte vorbereiten. Sofern diese jungfräulich ist, muss diese mittels Diskpart noch eingerichtet werden. Das ist relativ simpel wenn man noch einen Zweitrechner hat, an dem man sich schlau lesen kann. Diskpart müsst ihr starten, nachdem ihr (wie auf dem ersten Screenshot oben zu sehen) auf „Weiter“ geklickt habt. Wie? Ganz einfach: Shift+F10 drücken.
Nun ruft man diskpart auf. Mit list disk die Platten gegebenenfalls anzeigen lassen. Mit create partition primary erstellt ihr eine große primäre Partition. Nachträglich partitionieren kann man ja später in bunt.
Danach könnt ihr euch mit list volume noch euer Ergebnis anzeigen. Auch könnt ihr noch mit format c: /q eure Platte schnell formatieren.
Nun geht es an die Erstellung der VHD. Hier habe ich einmal die Vorgaben gemäß des HowTos von Johann Nitsch übernommen. Hackt folgendes in der Kommandozeile ein:
create vdisk file=“c:\win7.vhd“ type=expandable maximum=12000
select vdisk file=“c:\win7.vhd“
attach vdisk
Erklärung: Ihr erstellt damit auf dem Laufwerk C: eine bis zu 12 Gigabyte große VHD. Expandable heisst: sie wächst an. Verbraucht ihr weniger ist sie kleiner. Die maximale Größe beträgt allerdings 12 Gigabyte. Solltet ihr eine zu kleine VHD erstellt haben, so kann diese später noch mit dem VHD-Resizer vergrößert werden. Der Name der VHD ist übrigens frei wählbar. Wie auch der Name des GodMode für Wndows 7 😉
Mit der zweimaligen Eingabe von exit kommt ihr wieder in den normalen Installationsmodus und könnt Windows 7 benutzerdefiniert installieren.
Zu erwähnen ist, dass ihr nur Windows 7 Ultimate aus einer VHD booten könnt. Ihr könnt zwar jedes Windows 7 installieren, aber nicht booten. Ob es da irgendwelche Tipps & Tricks gibt kann ich aus dem Stehgreif nicht sagen, da ich hier nur Windows 7 Ultimate in Gebrauch habe.
Nach der Installation. Ihr werdet in eurem Explorer einmal eure gemountete VHD vorfinden und als nächstes Laufwerk die eigentliche Festplatte, welche eure VHD bereit stellt. Klingt komisch, ist aber so.
Das Schöne: ihr könnt diese VHD im laufenden Betrieb zur Sicherung irgendwo hin kopieren.
Kleines Beispiel gefällig? Erstellt von dieser VHD mal eine Kopie auf dem Laufwerk, so zum Beispiel:
Was ihr davon habt? Na, eine echte 1:1-Kopie eures lauffähigen Systems. Ihr könntet jetzt lustig Sachen ausprobieren und installieren. Läuft euer System unstabil oder ihr wollt einen alten Zustand (zum Beispiel vor einer Software-Installation haben), dann kloppt ihr die aktuelle VHD einfach in die Tonne und ihr nehmt eure angelegte Kopie (umbenennen nicht vergessen!). Des Weiteren könnt ihr auch eine VHD ganz einfach in euer System einhängen – zum Beispiel um Daten aus der VHD zu ziehen. Wie das geht beschrieb ich ja schon in diesem Beitrag: VHDs automatisch einbinden und die Verschlüsselung mit Bitlocker. Sieht dann so aus:
Alternativ könnt ihr mit der kopierten VHD auch ein zweites System nur zum Testen booten. Diese VHD muss dafür nur mit dem Bootmanager von Windows bekannt gemacht werden. Wie das geht? Eigentlich ganz easy. Führt die Kommandozeile als Admin aus (cmd, Rechtsklick: als Administrator ausführen):
Hackt nun folgendes in die Kommandozeile:
bcdedit /copy {current} /d "Boot Description"
„Boot Description“ sollte durch euren eigenen Boot-Text ersetzt werden, kann man aber später ändern (dazu gleich was).
Kopiert euch nun eure ID heraus und fügt folgendes ein:
bcdedit /set {557b2157-0aee-11df-b907-c148aff72235} osdevice vhd=[D:]\win7Testsystem.vhd
gefolgt von:
bcdedit /set {557b2157-0aee-11df-b907-c148aff72235} device vhd=[D:]\win7Testsystem.vhd
Den Pfad bzw. Namen müsst ihr logischerweise durch den eurer VHD ersetzen. Bootet ihr nun euer System, so wird euch folgendes anlächeln:
Wollt ihr Namen oder Bootreihenfolge ändern, so könnt ihr die Freeware EasyBCD benutzen.
Alternativ gibt es das gute alte msconfig:
So, jetzt ist es kurz nach halb sechs und der erste Kaffee will getrunken werden. Ich hoffe, dass ihr wenigstens ein bisschen Nutzen aus meiner Schlaflosigkeit ziehen konntet. Mit VHDs lässt sich noch wesentlich mehr bewerkstelligen, vielleicht schreibe ich in der nächsten schlaflosen Nacht noch etwas dazu 😉
Weiterführende Quellen und Lesenswertes:
Microsoft Technet: Erstellen von Partitionen mit diskpart
Windows 7 parallel zu Windows XP oder Windows Vista in eine VHD installieren
BCDEdit im Microsoft Technet erklärt
Wie funktioniert das Booten von VHDs
Adding a existent VHD to the Windows 7 Boot Loader
Windows 7: Natives Booten von VHD
Windows 7 VHD Mount
Es wäre doch lustig, Win7 per VHD auf einen USB-Stick zu installieren, ohne den dann später der PC nicht mehr bootet 🙂
„“Ein VHD-”Container” ist nur ein reservierter Platz auf dem Datenträger, keine virtuelle Maschine.““
Naja etwas mehr ist er schon. Er kann zumindest direkt als Bootsystem für eine VM genutzt werden.
ist das nun ein APPLE beitrag oder wie?
Das native Booten einer VHD aus Windows 7 < Ultimate ist also nicht möglich. Ich frage mich: wer entscheidet das? Kann doch theoretisch nur der Bootloader für verantwortlich sein. Idee: Wenn ich die bootmgr-Datei von Ultimate nutze und mit meiner jetzigen ersetze, müsste es dann nicht gehen? Aber die Lösung wäre zu einfach.
Kennt da jemand die technischen Hintergründe?
@caschy (oder auch alle anderen)
Betriebssysteme von USB-Stick/HDD zu starten funktioniert ja auch. Ist es demnach vielleicht sogar möglich eine oder mehrere VHD (je nach System) auf ein USB-Medium zu packen und somit verschiede PCs/NBooks mit ein und der selben Platte zu betreiben, natürlich nicht gleichzeitig. Aber wenn ich allein drei Rechner habe und nutze immer nur einen. Aber es wäre günstiger z.B. ein PC auf Arbeit, einen daheim, einen in der Uni. Und überall stöpselt man nur seine USB-Platte an und kann arbeiten wie daheim. Eine externe Platte ist sicher günstiger als drei oder vier interne. Da lohnt sich vielleicht sogar die SSD 😉 Aber das sind nur meine kleien Gehirnspinnste.
Wäre sowas möglich?
@ralf_donald: Möglich ja, wenn du 3 identische PCs hast. Denn das Win7 auf dem ext. Medium wurde mittels PC A installiert. Da sich dieser in seiner Hardware von PC B und C unterscheidet, dürfte der erfolgreiche Einsatz fehlschlagen.
technisch ist das durchaus machbar, man bräuchte nur 3 verschiedene hardwareprofile, die vor dem booten des betriebssystems impliziert werden 😉
Also mehr oder weniger eine Live-Version aufm USB-Stick bzw. ext. Platte.
Thomas sagt
„Es wäre doch lustig, Win7 per VHD auf einen USB-Stick zu installieren, ohne den dann später der PC nicht mehr bootet“
Geht nicht. Schon versucht; liegt an der Einbindung der USB-Anschlüsse wenn das BS gestartet wird. Generell geht das aber, nur eben nicht „nur“ per VHD.
Hab ich mir beinahe gedacht. Wäre trotzdem eine nette Idee hinsichtlich Computer-Terminal (Zugang nur mit OS aufm Stick).
@Caschy: Super Beitrag für einen Schlaflosen 🙂 Deine Tech-Berichte lösen wie immer eine sehr interessante Diskussion aus.
@All: Wenn ich z.B. in VirtualBox ein virtuelles System aufsetze habe ich die Sicherheit das nichts aus der Box „ausbrechen“ kann und das ich aus der Box keine Lese- und Schreibrechte auf meine „reale“ Festplatte habe solange ich das nicht explizit Freigebe.
Wenn ich diesen Bericht richtig verstanden habe, dann sieht man im Explorer des virtuellen Systems auch die „reale“ Festplatte. Meine Frage ist nun: Sieht man aus dem virtuellen Windows nur die „reale“ Platte auf der sich die VHD befindet oder bindet das virtuelle System auch die anderen Partitionen ein, sprich auch das richtige Laufwerk C auf dem sich das „richtige“ Betriebssystem befindet? Stellt das nicht ein Sicherheitsrisiko dar? Und gibt es eine Möglichkeit Windows 7 in eine VHD zu installieren und diese dazu zu bringen nur „sich selbst“ zu sehen? Also keine anderen Platten die am Computer angeschlossen sind so ähnlich wie in VirtualBox.
Ich hoffe ich konnte meine Fragen verständlich formulieren.
Mit freundlichem Gruß, R2D2
Genau, ich dachte da an „gar keine Festplatte“: Kostenersparnis und ein Hacken der vorhandenen HDD nicht möglich.
Vision: Der „PC“ besteht dann lediglich aus einem Mainboard (+ CPU und RAM) und der Touch-Screen dient dann als Eingabegerät und Netzteil. Alle anderen Komponenten sind entweder onboard oder garnicht notwendig.
@R2D2
Im Prinzip unterscheidet sich die Installation von Win7 in einer VHD von einer nativen Installation nur dadurch, dass sich das BS in EINER Datei befindet. Diese Datei wird wie eine Partition oder ein Laufwerk behandelt. Das System an sich ist nicht virtuell, also mit einer VM nicht vergleichbar oder nur in soweit vergleichbar, dass in einer VM ebenfalls eine Datei, die ein BS enthält, eingehangen wird. Im Falle einer Win7 VHD nur eben ohne VM, da Ultimate das von Haus aus beherrscht.
Eine Win7 VHD mit BS verhält sich damit exakt so, wie es jedes andere parallel installierte oder nativ installierte BS auch tun würde. Mit allen Rechten. Das ist kein Sicherheitsrisiko, da ein anderes Verhalten wie bei einer VM nicht vorgesehen ist. Damit lässt sich nicht ein „sichereres“ System schaffen.
Und da die Rechte auch die gleichen sind -System-Administrator, Administrator oder Benutzer- je nachdem wie es eingerichtet ist, hat man auch Zugriff auf alle Partitionen, Laufwerke etc. In diesem Falle automatisch auf den Inhalt der VHD, da diese ja zwangsläufig gemountet wurde.
Umgekehrt hat, also eine native Installation, nicht zwangsläufig Zugriff auf die VHD, zumindest solange nicht, wie diese nicht gemountet wird. Das wäre dann die sicherere Variante.
Ob man einem Win7 VHD BS den Zugriff auf andere Partitionen oder Laufwerke untersagen kann, weiß ich nicht. Ich zweifle aber aufgrund der Rechte die diese Variante hat daran, denn man kann sich ja nötigenfalls auch System-Administrator Rechte verschaffen und die Zugriffsverweigerung müsste noch höhere Rechte besitzen. Aber wo sollen die herkommen? Möglicherweise über ein nativ installiertes Server BS.
@Thomas
Ja, über so etwas habe ich auch schon nachgedacht. Das Problem ist allerdings, dass Win7 normalerweise auch noch Platz für die Auslagerungsdatei benötigt, ein Datenträger also entsprechend groß sein muss oder die Auslagerung abgeschaltet wird. Ich arbeite nur noch mit Win7 in einer VHD und lege deswegen die Größen der Partition und der expandierenden VHD vorher entsprechend fest.
@maas-neotek: Im Hinblick auf > 8 GB USB-Sticks bzw. ext. Platten dürfte der Platz keine Rolle mehr spielen 🙂
Funktioniert das ganze auch in Verbindung mit einer Festplatte, die per Truecrypt vollverschlüsselt ist? Oder kann das Betriebssystem (die vhd) dann nicht gebootet werden?
@Thomas
Man darf dabei nur nicht vergessen, dass schon einige wenige Programme (bei mit nur 6 Plus ein paar Treiber etc.) lässig fast 14 GB und die pagefile.sys nochmals 6 GB bei 4 GB RAM benötigen. Ein USB Stick muss also schon recht groß sein. Mit einer SSD hat es sich vermutlich mit der Auslagerungsdatei wohl erledigt.
@Marco
Ich behaupte einfach mal, dass das funktioniert. Der Bootvorgang unterscheidet sich nicht von einem normalen Bootvorgang (bis auf die Expansion einer als expandierend angelegten VHD; man kann auch eine feste Größe vorgeben). Aber das müsstest du ausprobieren. Einfach Win7 parallel als VHD zur nativen Installation installieren und sehen was passiert. Nötigenfalls kann man alles wieder löschen. Ich arbeite allerdings nicht mit verschlüsselten Festplatten und habe deswegen auch nicht wirklich Ahnung davon.
Leider ist es mit TrueCrypt nicht möglich ein System zu verschlüsseln, dass von einem anderen Datenträger bootet 🙁
Da eine vhd als neuer Datenträger gesehen wird, bekommt man das wohl nicht hin, schade!
Sehr schöner Artikel.
Habe somit mein derzeitiges System kopiert und kann nun nach Herzenslust testen. 😀
@maas-neotek: Danke für die ausführliche Antwort. Habe mich schon gefreut mit der vollen Hardwareunterstützung Schindluder treiben zu können ohne mir sorgen auf die Auswirkungen auf andere Partitionen zu machen 😉
Dann bleibe ich wohl bei der guten alten VirtualBox. Um Software auszuprobieren reicht die ja vollkommen aus.
Schönen Sonntag euch allen.
Mal gut dass ich alle Quellen drin hab. Vogel…