twoday schrieb:
allerdings hatte Windows dann D: als Laufwerksbuchstaben, während \User und \Program Files nach wie vor auf C:\ liegen.
Ja, das Problem ist bekannt. Das liegt an folgendem:
Windows identifiziert und unterscheidet jedes Laufwerk anhand eines Hash-Codes. Selbst gleiche Laufwerke (gleiche Marke, gleicher Typ, gleiche Kapazität) haben unterschiedliche Hash-Codes. Für jeden dieser Hash-Codes legt Windows in der Registry unter HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices einen Laufwerksbuchstaben fest. Auch jede jemals angeschlossene interne oder externe Festplatte und jeder USB-Stick wird dort mit seinem Hash-Code und einem Laufwerksbuchstaben hinterlegt.
Dein physisches Laufwerk hat nun z.B. den Hasch-Code ABC123 und den Laufwerksbuchstaben C:.
Deine mittels disk2vhd konvertierte VHD-Festplatte hat einen
anderen Hash-Code – ist ja aus Sicht von Windows eine
andere Festplatte.
Wenn du nun dein Windows 7 aus der VHD-Festplatte startest, passiert folgendes:
Windows sieht anhand des Registry-Eintrages, daß es mal eine Festplatte mit dem Hash-Code ABC123 und dem Laufwerksbuchstaben C: gab. Dieser Laufwerksbuchstabe ist also schon vergeben. Für die VHD-Festplatte mit z.B. dem Hash-Code XYZ456 muß also ein anderer Laufwerksbuchstabe verwendet werden – z.B. D: Gleichzeitig kann aber an anderer Stelle in der Registry stehen, daß \User und \Program Files unter C: zu finden sind. Was natürlich zu einem heillosen durcheinander führen kann, wenn zwei unterschiedliche Windows 7 Installationen (physische Festplatte und VHD-Datei) auf die gleichen Ordner \User und \Program zugreifen.
Zur Behebung dieses Fehlers gibt es mehrere Möglichkeiten:
[li]Bevor du mittels disk2vhd deine physikalische Platte in eine VHD-Datei konvertierst, löscht du den Registry-Zweig HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices. Nach einem Neustart wird dieser Registry-Zweig wieder neu erstellt (du kannst auch den Registry-Zweig in eine Datei exportieren, dann löschen, dann die disk2vhd Konvertierung vornehmen und dann den exportierten Registry-Zweig wieder importieren). Auf diese Weise hat deine VHD-Datei beim ersten Start keine Einträge unter HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices. Diese werden dann beim ersten Start neu angelegt und die Bootfestplatte (VHD-Datei) erhält dadurch automatisch den Laufwerksbuchstaben C:[/li]
[li]Du könntest auch dein VHD-Windows 7 booten, dort den Registry-Zweig HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices löschen und dann erneut booten. Auch auf diese Weise hat deine VHD-Datei beim nächsten Start keine Einträge unter HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices. Diese werden dann neu angelegt und die Bootfestplatte (VHD-Datei) erhält dadurch automatisch den Laufwerksbuchstaben C:[/li]
[li]Du kannst auch dein Windows 7 von der physikalischen Festplatte booten und dann die VHD-Datei in der Datenträgerverwaltung einbinden. Dann den Registry-Editor starten und mittels Struktur laden den Registry-Zweig HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices der VHD-Datei importieren. Beim importierten VHD-Registry-Zweig könntest du dann die Zuordnungen unter HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices vertauschen (aus Laufwerk D: mache Laufwerk X:, aus Laufwerk C: mache Laufwerk D:, aus Laufwerk X: mache Laufwerk C. Anschließend kann über Struktur entfernen der importierte VHD-Registry-Zweig wieder zurück in die VHD-Datei geschrieben werden.[/li]
Zur Unterscheidung der Installationen (physische Festplatte und VHD-Datei) würde ich deutliche Hinweise machen; z.B:
[li]Das Hintergrundbild ändern[/li]
[li]Im Windows Explorer die Laufwerke unterschiedlich benennen; z.B. in Windows 7 und Windows 7 VHD[/li]
[li]Und eventuell unter \User und \Program jeweils eine Text-Datei anlegen; z.B. physikalisch.txt und vhd.txt[/li]