นี่คือวิธีที่ฉันแก้ปัญหาของฉัน
ก่อนอื่นฉันจะเลิกเปลี่ยน UUID ในไฟล์ VDI พื้นฐานโดยใช้สคริปต์โดย jordoncm
จากนั้นฉันก็ลองเปลี่ยนเส้นทางในไฟล์ vbox เพื่อให้ตรงกับตำแหน่งใหม่ ที่ไม่ได้ทำงานเป็นข้อผิดพลาดต่าง ๆ โผล่ขึ้นมาและฉันไม่สามารถเพิ่ม VM โดยใช้ไฟล์ vbox
ดังนั้นฉันจึงพบบทความบล็อกนี้โดย Peter Porterผู้แนะนำ:
เนื่องจากแต่ละ. vdi มีเฉพาะภาคเหล่านั้นที่เปลี่ยนไปจาก. vdi ล่าสุดการคัดลอก. vdi ตามลำดับเวลาควรสุทธิเรา. vdi ที่มีสำเนาเต็มของสแนปชอตก่อนหน้าทั้งหมด
...
ใช้คำสั่ง“ VBoxManage clonehd” เพื่อสร้างไฟล์. vdi ใหม่ตามต้นฉบับของคุณจากนั้นเพิ่มในแต่ละไฟล์ถัดไปโดยใช้อาร์กิวเมนต์“ –existing” เพื่อเพิ่มข้อมูลลงใน. vdi ที่คุณกำลังสร้างอยู่ รายการคำสั่งต่อไปนี้อ้างอิงจากตัวอย่างของฉันด้านบน:
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
สิ่งนี้จะให้ไฟล์“ Machine-full.vdi” ที่แสดงถึงสถานะเต็มของเครื่องของคุณในสถานะแอ็คทีฟโดยไม่มีความสัมพันธ์ใด ๆ กับไฟล์ parent .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
ดูเหมือนว่า Crap ฉันต้องเพิ่มรายการใน 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