Windows bootfähig auf virtueller Festplatte (VHD) installieren.
Man kann VHDs (siehe Artikel “VHD anlegen”) nicht nur für virtuelle Maschinen benutzen, sondern man kann Windows sogar davon booten. Das geht aber erst ab der Professional-Version aufwärts. Der im unten beschriebene Weg ist nicht zwar supportet, funktioniert aber trotzdem.
Motivation
Meine Idee ist, dass ich auf der physischen Festplatte mehrere virtuelle Festplatten habe, von denen ich wahlweise booten kann:
- Windows7.vhd
- Windows7Test1.vhd
- Windows7Test2.vhd
- Windows8ConsumerPreview.vhd
- Windows8ReleasePreview.vhd
- …
Zum Sichern einer VHD brauche ich kein Spezialprogramm wie Acronis True Image, sondern einfach nur den Befehl “copy
”. Zu Testzwecken kann ich mir ebenfalls mit “copy Windows7.vhd Windows7Test3.vhd
” schnell mal eine Testinstallation erzeugen, davon booten, ein problematisches Programm installieren und anschließend mit “del Windows7Test3.vhd
” die ganze Schweinerei wieder entsorgen.
Es kommt aber noch besser: Statt einige GB von Windows7.vhd nach Windows7Test3.vhd zu kopieren, kann ich Windows7Test3.vhd als “differencing VHD” anlegen. Die braucht nur wenig Speicherplatz, weil sie nur Änderungen gegenüber dem “Parent” speichert und ist daher sofort fertig.
Nachteile der VHD sind z. B. Kein Ruhezustand mit Hibernate und Bitlocker-Verschlüsselung.
Anleitung
Es gibt im Internet etliche Anleitungen mit Screenshots, wie die Installation auf einer VHD im Detail funktioniert, in Kürze:
- Vom Installationsmedium booten
- Installation mit SHIFT-F10 für die Kommandozeile unterbrechen
- Reale Platte vorbereiten: mkdir d:\VHD
- mit diskpart, VHD anlegen und connecten:
D:\>diskpart
create vdisk file=d:\VHD\Windows7.vhd type=expandable maximum=81920
select vdisk file=d:\VHD\Windows7.vhd
attach vdisk
exit
- zurück in die GUI Oberfläche:
D:\>exit
- als Installationziel neue Disk virtuelle Disk angeben
- die Meldung „Windows kann nicht auf diesem Laufwerk installiert werden“ ignorieren
Der Wert “maximum” sollte nicht unnötig groß gewählt werden, denn die VHD-Datei wird beim Booten auf diesen Maximalwert vergrößert. Nachträgliches vergrößern ist einfacher als verkleinern. Zuerst vergrößert man die VHD mit “VHD Resizer” von vmtoolkit.com, und dann das Volume Diskpart.
Es wird empfohlen, als typ “fixed” und nicht “expandable” einzugeben, aber dann ist die VHD-Datei immer 80G groß, auch wenn die virtuelle Platte nur zur Hälfte belegt ist. Für eine einzige VHD-Datei wäre das egal, zumal sie im Betrieb sowieso auf das Maximum vergrößert wird, aber wenn man mehrere Umgebungen alternativ betreiben will, ist das zu viel Verschwendung.
Aus Sicht des gebooteten Betriebssystems ist die VHD die Platte C:. Die physische Platte, die die VHD enthält, wird als D: angezeigt und dort sieht man D:\VHD\Windows7.vhd
Onboard-Kommandozeilen-Tool “bcdedit.exe” oder mit dem graphischen Tool EasyBCD kann man zwischen den zu bootenden VHDs umschalten.
Falls die virtuelle Platte oder die Platte, auf der die VHD-Datei liegt, nach dem Booten nicht den gewünschten Laufwerksbuchstaben haben, kann man das nicht, wie üblich, aus dem Dateimanager ändern. Stattdessen muss man in der Registry unter „HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices“ nach dem Schlüssel für das zu ändernde Laufwerk, z. B. „\DosDevices\C:“ suchen und mit der rechten Maustaste „umbenennen“ auswählen.
Backup
Zum Backup übertrage ich die VHDs auf eine externe Platte. Ich nutze das ORICO 7618SUS3 Festplattengehäuse weil Platte leicht ausgetauscht werden kann. Bei ständigem Wechsel Zweifel, ob die Kontakte halten, aber für gelegentlich OK. Kritikern warnen vor Überhitzung der Platte, aber das Backup geht auf diese Weise schnell und die Platte bleibt nicht so lange in Betrieb, dass das ein Problem werden könnte. Um für den Notfall gerüstet zu sein, habe ich diese externe Platte bootfähig gemacht.