Differenzierende VHD in Virtualbox

Ich habe mir auf meinem Dell ein bootfähiges virtuelles System von Win 7 Ultimate gemacht.
Dieses besteht aus einer Basis VHD und einer differenzierenden VHD für die Änderungen.
Mein neuer Laptop kann kein Windows 7 mehr. Es fehlen Treiber und Windows 7 unterstützt den neuen I7 nicht mehr.
Jetzt will ich das ganze in Virtualbox laufen lassen. Wenn ich die Basis VHD einbinde, wird nur der Grundzustand nach der Installation gestartet. Wenn ich stattdessen die differenzierende VHD auswähle, kommt eine Fehlermeldung.
Wie binde ich die differenzierende VHD ein?

Es gibt eine Lösung, mit der es geht.

(Und jetzt: Was habe ich vergessen zu schreiben, und was hast du uns vorenthalten?)

Tolle Antwort.
Was willst du denn noch wissen?

Naja, ich frage mich manchmal, warum Programmierer sich eigentlich die Mühe machen, texte in die Fehlermeldungen zu schreiben. Eigentlich reicht ja ein kleines, leeres Fenster mit nem OK-Knopf.

1 Like

„Parent medium with UUID {38b03cec-ffe7-4fe0-8c9f-9265a25a570b} of the medium ‚D:\Win7-32-1.vhd‘ is not found in the media registry (‚C:\Users\Dirk.VirtualBox\VirtualBox.xml‘).“

Hi!

Na, siehst du, das sagt einem doch schon eine ganze Menge.

Vorab: Ich verstehe nicht ganz, was dein „Basis-VHD“ etc. genau ist. Hast du auf dem Dell auch VirtualBox genutzt, oder was anderes?

Im Grunde ist es so: Du hast irgendwann Windows installiert, und dann einen Snapshot erstellt.
Das heißt, die Installation ist in einer Festplatten-Datei gelandet, die du „Basis-VHD“ nennst, und die ab jetzt nicht mehr geändert wird. Zukünftige Änderungen werden in deiner „differenzierenden VHD“ gespeichert.

Du kannst jetzt die Basis-VHD nutzen, bekommst dann aber den Stand nach der Installation. Das ist dir ja schon aufgefallen.

Du kannst aber nicht einfach die differenzierende VHD nehmen, denn da sind ja nur die Änderungen in Bezug auf die Basis-VHD drin. Und genau deren Fehlen meckert deine Fehlermeldung an.

Deine XML-Datei (Bei mir ist es eine vbox-Datei) kannst du mal mit einem Text-Editor öffnen, darin findest du eine Passage, die etwa so aussehen sollte:

Die virtuelle Maschine hat…

  • eine virtuelle Festplatte, die in der Datei leap42.vdi liegt, und die ID a6d88dea... hat (Basis-VHD)
  • Es wurde mal ein Snapshot angefertigt, die „differenzierende VHD“ hat die ID ac4dc243 und liegt unterSnapshots/{ac4dc243...vdi.
  • eine weitere virtuelle Festplatte, die in der Datei scratch.vdi liegt, und die ID 5ecc9db09... hat
  • Ein DVD-Laufwerk …

Wenn man in der Datei weiter runter geht, kommt ein Bereich <Snapshots>, in dem auf die erste Platte (a6d88dea...) verwiesen wird, und später nochmal ein allein stehender, der auf die neuere Platte ac4dc234... verweist:

Ich sehe nicht, wie du deine beiden Platten-Images jetzt mit der grafischen Oberfläche von VBox zusammen bekommst, und würde folgendes versuchen:

Benutze deine Basis-VHD, und lege einen Snapshot an. Daraufhin wird im Ordner Snapshots eine neue Festplatten-Datei erzeugt, die auch in der XML-Datei auftaucht. Ersetze diese Datei durch deine „differenzierende VHD“.

Allerdings sehe ich ein ganz großes Problem: Du hast deine virtuelle Maschine bereits mit der Basis-VHD gestartet, und dabei wurde die Basis-VHD geändert. Deine differenzierende VHD passt jetzt nicht mehr dazu!

Entweder hast du noch irgendwo eine jungfräuliche Kopie deiner Basis-VHD, oder du schmeißt die differenzierende weg.

1 Like

Ich habe das virtuelle System wie folgt aufgesetzt.
Von DVD booten und mit diskpart eine VHD (1) anlegen.
Diese einbinden und darauf Win 7 installieren.
Das installierte Win7 booten und alle Grundsoftware aufspielen.
Danach wieder mit DVD booten und mit diskpart eine differenzierende VHD (2) erzeugen, die auf VHD 1 zeigt.
Danach mit BCDedit einen Booteintrag erzeugen, der auf VHD 2 verweist.
Danach kann man das System booten und alles andere installieren.
Ich habe nie einen Snapshot unter einem Hostsystem erzeugt, probier deinen Tip aber mal aus.

Das kopieren geht nicht. Dann kommt folgende Meldung:
UUID {e88f6d72-147f-4ed3-b54a-f2c7abbea36a} of the medium ‚C:\Users****\VirtualBox VMs\Digatron\Snapshots/{b5a8184e-9eef-40c9-8415-9d4ccadc7448}.vhd‘ does not match the value {b5a8184e-9eef-40c9-8415-9d4ccadc7448} stored in the media registry (‚C:\Users****.VirtualBox\VirtualBox.xml‘).

Problem wie folgt gelöst.

diskpart ausführen.
select vdisk file=[pfad]\child.vhd bei mir VHD2
merge vdisk depth=1

Dies ändert den Zustand der Basis VHD auf den Stand der Tochter mit allen Änderungen ab.

Wenn diskpart damit fertig ist, die Basis VHD in Virtualbox einrichten.
Die VBoxGuestAdditions_x.x.x.iso der jeweiligen Virtualbox Version herunter laden.
Das virtuelle System starten, die VBoxGuestAdditions installieren und glücklich sein.