Voici comment j'ai résolu mon problème.
J'ai d'abord annulé la modification de l'UUID sur mon fichier VDI de base en utilisant le script de jordoncm
Ensuite, j'ai simplement essayé de changer les chemins dans le fichier vbox pour qu'ils correspondent au nouvel emplacement. Cela n'a pas fonctionné car diverses erreurs différentes sont apparues et je n'ai même pas pu ajouter la machine virtuelle à l'aide du fichier vbox.
J'ai donc trouvé cet article de blog de Peter Porter qui a suggéré:
comme chaque .vdi ne contient que les secteurs modifiés par rapport au dernier .vdi, la copie des .vdi dans l'ordre chronologique devrait nous fournir un .vdi contenant une copie complète de tous les instantanés antérieurs.
...
Utilisez la commande «VBoxManage clonehd» pour créer un nouveau fichier .vdi basé sur votre original, puis ajoutez-le à chaque fichier suivant en utilisant l'argument «–existing» pour simplement ajouter les données au .vdi existant que vous construisez. La liste de commandes suivante est basée sur mon exemple ci-dessus:
VBoxManage clonehd Machine.vdi Machine-full.vdi
VBoxManage clonehd Snapshots {UUID1} .vdi Machine-full.vdi
VBoxManage clonehd Snapshots {UUID2} .vdi Machine-full.vdi
VBoxManage clonehd Snapshots {UUID3} .vdi Machine-full.vdi
VBoxManage clonehd Snapshots {UUID4} .vdi Machine-full.vdi
Cela vous donnera un fichier «Machine-full.vdi» qui représente l'état complet de votre machine à l'état actif sans aucune relation avec les fichiers .vdi parents. Vous pouvez maintenant utiliser ce fichier «Machine-full.vdi» sur une nouvelle machine virtuelle ou modifier votre machine virtuelle existante, en supprimant l'ancien fichier .vdi et en ajoutant ce .vdi.
Avec un peu de peaufinage qui a semblé fonctionner pour moi:
Voici le disque dur et ses instantanés:
<HardDisk uuid="{ed1428ca-76be-440a-894b-e666b50f5c86}" location="H:/vm/ft.vdi" format="VDI" type="Normal">
<HardDisk uuid="{8d8be78f-6648-4503-bee3-8810cb853a99}" location="Snapshots/{8d8be78f-6648-4503-bee3-8810cb853a99}.vdi" format="VDI">
<HardDisk uuid="{cce0ee4f-5052-4be7-81ff-47ea08202716}" location="Snapshots/{cce0ee4f-5052-4be7-81ff-47ea08202716}.vdi" format="VDI">
<HardDisk uuid="{c297d4b9-972d-4b07-a839-5d76ee8d0387}" location="Snapshots/{c297d4b9-972d-4b07-a839-5d76ee8d0387}.vdi" format="VDI">
<HardDisk uuid="{8e9ca914-648f-464c-b515-2606c644d7f0}" location="Snapshots/{8e9ca914-648f-464c-b515-2606c644d7f0}.vdi" format="VDI"/>
</HardDisk>
</HardDisk>
</HardDisk>
</HardDisk>
Ce sont les commandes que j'ai exécutées (désolé, certaines sont coupées de ses fenêtres ...):
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd N:\vm\ft.vdi N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd "N:\vm\VirtualBox VMs\lfs\Snapshots\{8d8be78f-6648-4503
VBoxManage.exe: error: Parent medium with UUID {ed1428ca-76be-440a-894b-e666b50f5c86} of the medium 'N:\vm\Vi
03-bee3-8810cb853a99}.vdi' is not found in the media registry ('C:\Users\ <user>/.VirtualBox\VirtualBox.xml')
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component Medium, interface IMedium, callee IUnknow
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pM
xManageDisk.cpp
Merde semble que je dois ajouter une entrée dans VirtualBox.xml sous MediaRegistry-> HardDisks, mais je dois m'assurer de lui ajouter chaque instantané dans l'ordre chronologique après chaque copie. Donc c'est comme ça:
Copy VM
Add entry to VirtualBox.xml
Copy VM ...
Et le reste de ce que j'ai fait au cas où cela aiderait quelqu'un d'autre:
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox VMs\lfs\Snapshots\{8d8be78
_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox VMs\lfs\Snapshots\{cce0ee4f-5052-4be7-81ff-47ea08202716}.vdi" N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox VMs\lfs\Snapshots\{c297d4b9-972d-4b07-a839-5d76ee8d0387}.vdi" N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4
C:\Program Files\Oracle\VirtualBox>VBoxManage clonehd --existing "N:\vm\VirtualBox VMs\lfs\Snapshots\{8e9ca914-648f-464c-b515-2606c644d7f0}.vdi" N:\vm\ft_full.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a7fb5e25-c248-4644-a898-f1e26f6570a4
Et puis j'ai simplement créé une nouvelle machine virtuelle en utilisant ft_full.vdi comme base. Correspond au reste des paramètres dans le volet des paramètres de l'interface graphique.