Ich versuche, ein Bash-Skript so einfach wie möglich zu Klonen virtueller Maschinen von einer "übergeordneten" virtuellen Maschine (mit dem Namen peer00
) zu schreiben. Um diese Maschinen zu klonen, brauche ich zuerst einen Snapshot.Bash-Skript zum Löschen und Erstellen von Snapshots mit virtualbox
vboxmanage snapshot peer00 delete "MySnapShot"
vboxmanage snapshot peer00 take "MySnapShot"
# for loop to create several machines
Nun, wenn ich dieses Skript ausführen, wenn kein MySnapShot
Schnappschuss ich folgende Fehlermeldung erhalten, ist (natürlich):
VBoxManage: error: Could not find a snapshot named 'MySnapShot' VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component SessionMachine, interface IMachine, callee nsISupports VBoxManage: error: Context: "FindSnapshot(Bstr(a->argv[2]).raw(), pSnapshot.asOutParam())" at line 514 of file VBoxManageSnapshot.cpp
Auf der anderen Seite, wenn ich es laufen, während der Schnappschuss ist bereits vorhanden I erhalten diese andere Ausgabe:
0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Snapshot operation failed VBoxManage: error: Hard disk '/home/pietro/VirtualBox VMs/peer00/Snapshots/{0183ad41-71b6-41bf-af74-38db828b2d82}.vdi' has more than one child hard disk (7) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component SessionMachine, interface IMachine VBoxManage: error: Context: "RTEXITCODE handleSnapshot(HandlerArg*)" at line 532 of file VBoxManageSnapshot.cpp
Wie eine Art „if-Anweisung“ schreiben, die bereits, wenn der Snapshot, bevor sie versuchen, es zu löschen existiert überprüfen wird? Außerdem, warum bekomme ich den zweiten Fehler? Ich verstehe wirklich nicht,
Es gibt einen * - uniquename * -Parameter (der Number, Timestamp, Space, Force-Werte unterstützt). Es könnte sich lohnen, sein Verhalten zu überprüfen. –