Đây là cách tôi giải quyết vấn đề của mình.
Đầu tiên tôi hủy thay đổi UUID trên tệp VDI cơ sở của mình bằng cách sử dụng tập lệnh của jordoncm
Sau đó, tôi đã cố gắng đơn giản thay đổi các đường dẫn trong tệp vbox để phù hợp với vị trí mới. Điều đó không hoạt động khi nhiều lỗi khác nhau xuất hiện và tôi thậm chí không thể thêm VM bằng tệp vbox.
Vì vậy, tôi tìm thấy bài viết blog này của Peter Porter , người đề xuất:
vì mỗi .vdi chỉ chứa các lĩnh vực được thay đổi từ .vdi cuối cùng, sao chép .vdi theo thứ tự thời gian sẽ gửi cho chúng tôi một .vdi chứa một bản sao đầy đủ của tất cả các ảnh chụp nhanh trước đó.
...
Sử dụng lệnh clonehd nghén của VBoxManage để tạo tệp .vdi mới dựa trên bản gốc của bạn, sau đó thêm vào từng tệp tiếp theo bằng cách sử dụng đối số mật mã hiện tại để thêm dữ liệu vào .vdi hiện có. Danh sách các lệnh sau được dựa trên ví dụ của tôi ở trên:
VBoxManage máy clonehd.vdi Máy đầy đủ.vdi
Ảnh chụp nhanh VBoxManage clonehd {UUID1} .vdi Máy-full.vdi
Ảnh chụp nhanh clonehd của VBoxManage {UUID2} .vdi Máy-full.vdi
Ảnh chụp nhanh clonehd của VBoxManage {UUID3} .vdi Máy-full.vdi
Ảnh chụp nhanh VBoxManage clonehd {UUID4} .vdi Máy-full.vdi
Điều này sẽ cung cấp cho bạn một tập tin Máy Machine-full.vdi, đại diện cho trạng thái đầy đủ của máy của bạn ở trạng thái hoạt động mà không có bất kỳ mối quan hệ nào với các tệp .vdi gốc. Bây giờ bạn có thể sử dụng tệp này của máy Machine-full.vdi trên một máy ảo mới hoặc chỉnh sửa VM hiện có của bạn, xóa tệp .vdi cũ và thêm tệp .vdi này.
Với một chút tinh chỉnh có vẻ hiệu quả với tôi:
Đây là đĩa cứng và ảnh chụp nhanh của nó:
<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>
Đây là những lệnh tôi đã chạy (xin lỗi, một số lệnh bị cắt khỏi cửa sổ của nó ...):
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
Crap có vẻ như tôi cần thêm một mục trong VirtualBox.xml trong MediaRegistry-> HardDisks, nhưng tôi phải đảm bảo thêm từng ảnh chụp vào đó theo thứ tự thời gian sau mỗi bản sao. Vì vậy, nó như thế này:
Copy VM
Add entry to VirtualBox.xml
Copy VM ...
Và phần còn lại của những gì tôi đã làm trong trường hợp nó giúp được bất kỳ ai khác:
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
Và sau đó tôi chỉ cần tạo một VM mới bằng cách sử dụng ft_full.vdi làm cơ sở. Khớp với phần còn lại của cài đặt trong khung cài đặt gui.