Ось як я вирішив свою проблему.
Спершу я скасував зміну UUID в базовому файлі VDI, використовуючи сценарій jordoncm
Потім я спробував просто змінити шляхи у файлі vbox, щоб відповідати новому розташуванню. Це не спрацювало, оскільки з'явилися різні різні помилки, і я навіть не зміг додати VM за допомогою файлу vbox.
Тому я знайшов цю статтю в блозі Пітера Портера, який запропонував:
оскільки кожен .vdi містить лише ті сектори, змінені з останнього .vdi, копіювання файлів .vdi у хронологічному порядку повинно містити нам .vdi, що містить повну копію всіх попередніх знімків.
...
Використовуйте команду “VBoxManage clonehd”, щоб створити новий .vdi-файл на основі оригіналу, а потім додайте в кожен наступний файл, використовуючи аргумент “–існуючий”, щоб просто додати дані до існуючих .vdi, які ви будуєте. Наступний список команд заснований на моєму вище прикладі:
VBoxManage clonehd Machine.vdi Machine-full.vdi
VBoxManage Clonehd Знімки {UUID1} .vdi Machine-full.vdi
Знімки VBoxManage Clonehd {UUID2} .vdi Machine-full.vdi
Знімки VBoxManage Clonehd {UUID3} .vdi Machine-full.vdi
VBoxManage Clonehd Знімки {UUID4} .vdi Machine-full.vdi
Це дасть вам файл "Machine-full.vdi", який представляє повний стан вашої машини в активному стані без будь-якого відношення до батьківських файлів .vdi. Тепер ви можете використовувати цей файл "Machine-full.vdi" на новій віртуальній машині або відредагувати існуючий VM, видаливши старий файл .vdi та додавши цей .vdi.
Трохи налаштувавшись, здавалося, працює на мене:
Це жорсткий диск та його знімки:
<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>
Це команди, якими я керував (вибачте, деякі з них відрізали його вікна ...):
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
Мабуть, схоже, мені потрібно додати запис у VirtualBox.xml під MediaRegistry-> HardDisks, але я повинен переконатися, що потрібно додавати кожен знімок у хронологічному порядку після кожної копії. Так ось так:
Copy VM
Add entry to VirtualBox.xml
Copy VM ...
А решта, що я зробив, якщо це допомагає комусь іншому:
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
І тоді я просто створив новий VM, використовуючи ft_full.vdi в якості своєї бази. Відповідає решті налаштувань на панелі налаштувань gui.