Beste Möglichkeit, alle Snapshots auf einmal zu verwerfen

Beste Möglichkeit, alle Snapshots auf einmal zu verwerfen

Ich habe eine VirtualBox-VM (mit Windows Server 2012 als Host und Gast). Ich habe mehrere Snapshots erstellt, während ich einige schwierige Dinge konfiguriert habe:

Before installing OS
 \____ Before installing software A
        \____ Before installing software B
               \____ Before installing software C
                      \____ Testing this
                             \____ Testing that
                                    \____ Current state

Jetzt funktioniert alles und ich brauche den Speicherplatz, also möchte ich alle Snapshots löschen. Meinen Recherchen zufolge gibt es keine andere Möglichkeit, Snapshots zu löschen, als einen nach dem anderen, so quälend langsam das auch ist. Ich kann die VM weder klonen noch exportieren, da sie bereits 75 % der Hostfestplatte nutzt.

Soll ich mit dem Entfernen von oben nach unten beginnen oder umgekehrt? Was würde zu schnelleren Zusammenführungen führen? Oder ist das eigentlich egal?

Antwort1

Ich weiß nicht, ob das der beste Weg ist, aber es ist der schnellste Weg und nur, wenn Sie alle Schnappschüsse verwerfen und den aktuellen Status beibehalten möchten.

Gehen Sie zu den Snapshots, klicken Sie mit der rechten Maustaste auf den aktuellen Status, klicken Sie auf „Klonen“, aktivieren Sie alle Kontrollkästchen und stellen Sie „Alle Netzwerkadapter einschließen …“ ein.

Bildbeschreibung hier eingeben

Wählen Sie auf dem nächsten Bildschirm „Vollständiger Klon“

Wählen Sie auf dem nächsten Bildschirm „Aktueller Maschinenstatus“ und klicken Sie auf „Klonen“

Jetzt haben Sie genau dieselbe Maschine ohne Snapshots. Sie müssen die alte Maschine löschen

Nachteile: - Sie müssen entweder die alte VM vor dem Klonen umbenennen oder die neue VM nach dem Klonen. Da Sie alle UUIDs beibehalten, sollte alles gleich funktionieren, einschließlich der Befehlszeilenautomatisierung. - Sie benötigen zusätzlichen Speicherplatz, um vorübergehend die doppelte Größe zu erreichen

Vorteile: - Schnelles automatisches Zusammenführen aller Schnappschüsse, sodass Sie keine Zeit damit verschwenden müssen, einen Schnappschuss einzeln zu löschen

Antwort2

Aus Erfahrung würde ich sagen, dass es nur eine richtige Methode zum Löschen von Snapshots gibt: Vom neuesten zum rückwärts gehen und einen nach dem anderen löschen.
IMMER IN DER REIHENFOLGE – LÖSCHEN SIE NIEMALS EINEN „MITTLEREN“ SNAPSHOT. Oder, noch schlimmer, den ältesten/obersten Snapshot. Man sollte meinen, dass VB eingreifen und Sie vor diesem großen Fehler bewahren würde, aber es lässt ihn gerne zu. Danach sollte einfach ein Banner mit der Aufschrift „ha ha, das werden Sie bereuen!“ angezeigt werden.
Wenn Sie beim Löschen nie etwas anderes als den neuesten Snapshot und das sequenzielle Rückwärtsgehen vermasselt haben, sollten Sie alles löschen können, einschließlich des ältesten/obersten.
Wenn Sie es vermasselt und einen mittleren Snapshot gelöscht haben, sind Sie wahrscheinlich aufgeschmissen, was das Löschen von allem angeht. Normalerweise tritt beim Versuch zu löschen ein Fehler auf und Sie haben die verbleibenden Snapshots, die Sie nicht entfernen können. Sie müssten die VM an einem beliebigen Anfangspunkt neu laden (installieren oder importieren).
Beachten Sie, dass jeder Löschvorgang ziemlich lange dauern kann – etwa 10 Minuten pro Snapshot oder länger, je nach Systemgröße.

Antwort3

Mit VirtualBox Version 7.0 hatte ich keine Probleme, Snapshots zwischendurch zu löschen.

Ich musste zwischendurch etwa 15 Snapshots löschen und habe dazu das folgende Skript verwendet.

@echo off
:: Rename the following two lines to the correct VM name and executable path.
set VM_NAME="Win10ProWrk64TorrentTest"
set VBoxManageCMD="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

for /F "tokens=* delims=" %%a in (SnapshotsList.txt) DO  (
    Echo Deletting snapshot %%a from VM %VM_NAME%
    %VBoxManageCMD% snapshot %VM_NAME% delete %%a
    Echo *********************************************
)

Ich habe dieses Skript mit einer Datei namens verwendet, SnapshotsList.txtin der die Namen der Snapshots gespeichert waren, die ich löschen wollte.

Beispiel:

"qBitTorrent Installed"
"Increased Resolution"
"Updated VM software"
"After downloading MiniTool Tourent and before MiniTool install"
"Post Minitool Install and other torrent downloads"
"EaseUS Data Recovery Wizard Installed"
"EaseUS Partition Master installed"
"Removed bad DiskGenius installs"
"Removed Failed AOMEI_PartAssist"
"MiniTool Partition Wizard Installed"
"Wondershare Reparit installed"
"qTorrent option changes"
"Before removing Recoverit"

Die SnapshotsList.txtDatei kann einfach mit dem folgenden Befehl erstellt werden:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" snapshot "MyVmNameHere" list --machinereadable >SnapshotsList.txt

Bearbeiten Sie die Datei so, dass sie nur die SnapshotNames einschließt, die gelöscht werden sollen.

Wenn Sie dies versuchen, denken Sie daran, für die Snapshot-Namen und den VM-Namen doppelte Anführungszeichen zu verwenden.

verwandte Informationen