Rebase des Virtualbox-Snapshots auf ein anderes übergeordnetes Element

Rebase des Virtualbox-Snapshots auf ein anderes übergeordnetes Element

Ich verwende VirtualBox-Snapshots exzessiv (zur Verwendung in CI-Buildern), sodass ich normalerweise mehrere Snapshots auf einer einzelnen VM habe. Oft ertappe ich mich dabei, wie ich einen neuen Snapshot aus einem vorhandenen „forke“, z. B. um das System zu aktualisieren:

base
└── A
    └── A1

Sobald die Aktualisierung abgeschlossen ist, ersetze ich den übergeordneten Snapshot durch seinen untergeordneten Snapshot, indem ich ihn einfach entferne A. VirtualBox führt dann den Änderungssatz zusammen base->Aund A->A1:

base
└── A1

Cool.

Manchmal möchte ich jedoch einen neuen Snapshot-Unterbaum erstellen, derursprünglichForks eines Snapshots und bekommt ein Eigenleben:

Z.B

base
└── A
    ├── A1
    └── B
        └── B1

Nun: das wird ziemlich schnell hässlich (da ich den Unterbaum ständig aktualisiere) und irgendwann möchte ich den Snapshot-Baum bereinigen, sodass er wie folgt aussieht:

base
├── A1
└── B1

Leider lässt VirtualBox das Löschen von Snapshots nicht zu Aund es tritt der folgende Fehler auf:

Snapshot 'A' of the machine 'vagrantbox' cannot be deleted, because it has 2 child snapshots, which is more than the one snapshot allowed for deletion.

Theoretisch sehe ich keine Probleme beim Löschen von Snapshots A: VirtualBox muss die Snapshot-Zusammenführung einfach zweimal durchführen ( base->A->A1und base->A->B). Dadurch wird die Snapshot-Größe wahrscheinlich größer, aber damit kann ich gut leben (und hoffentlich erziele ich durch die Reduzierung der FS-Ebenen eine bessere Leistung).

Also: Wie kann ich einen Snapshot auf einen übergeordneten Snapshot zurücksetzen und gleichzeitig die übergeordneten Snapshots intakt lassen?

Antwort1

Sie können einen vollständigen VM-Klon auf der Grundlage eines Snapshots erstellen. Die neue VM verfügt dann über keine Snapshots. Die einzige andere Möglichkeit besteht darin, die VM abzumelden und dann die gesamte Arbeit selbst zu erledigen, indem Sie vboxmanagedie Disk-Images verwenden und die XML-Datei der VM bearbeiten.

verwandte Informationen