วิธีที่แนะนำในการย้าย VirtualBox VM ไปยังคอมพิวเตอร์เครื่องอื่นคืออะไร


234

ฉันใช้ VirtualBox 4.1.x บนเครื่อง Ubuntu และตั้งค่าเครื่องเสมือนหลายเครื่อง เนื่องจากมีหลายวิธีที่หนึ่งสามารถย้ายเครื่องเสมือนใน VirtualBox ไปยังคอมพิวเตอร์เครื่องอื่นฉันสงสัยว่าอันไหนเป็นวิธีที่แนะนำ:

  1. ใช้ยูทิลิตี้“ นำเข้า / ส่งออก”
  2. คัดลอกโฟลเดอร์เครื่องเสมือนทั้งหมดที่มี.vdiและ.vboxไฟล์
  3. โคลน VDI โดยใช้ "Virtual Media Manager" จากนั้นสร้าง VM บนเครื่องเป้าหมาย แต่ใช้ VDI ที่โคลนเป็นฮาร์ดดิสก์

ฉันใช้วิธีที่ 1สำเร็จหลายครั้งและใช้งานได้เสมอ ปัญหาคือหลังจากส่งออกและนำเข้าดิสก์อิมเมจจะถูกแปลงเป็น VMDK และไม่ใช่ VDI อีกต่อไป!

วิธีที่ 2น่าจะเป็นวิธีที่ง่ายที่สุด แต่ผมไม่แน่ใจว่าเพียงแค่การคัดลอกไฟล์จะทำงานได้หรือไม่ได้อยู่ในเครื่องเป้าหมาย เมื่อค้นหาเกี่ยวกับวิธีนี้ฉันพบว่าบางคนมีปัญหาในการแก้ไขไฟล์ VirtualBox.xml เพื่อแก้ไข!

ในที่สุดมีวิธีที่ 3แต่มันต้องการงานพิเศษในการสร้าง VM ที่คล้ายกับการกำหนดค่า VM ดั้งเดิมซึ่งไม่ต้องการ

เป็นที่ชัดเจนจากคำอธิบายข้างต้นว่าวิธีที่ฉันต้องการเป็นวิธีที่ 2 แต่ฉันต้องการคำแนะนำจากผู้เชี่ยวชาญหากมันใช้งานได้หรือไม่ ฉันไม่ต้องการให้การแก้ไข XML เข้ามาขวางทางฉัน!

วิธีที่ดีที่สุดในการโอน VM ของฉันไปยังคอมพิวเตอร์เครื่องอื่นด้วย VirtualBox อย่างปลอดภัยคืออะไร


2
เพียงถ่ายโอนไฟล์และวางไว้ในตำแหน่งเดียวกัน
Ramhound

2
@seyed 1. ไม่ปลอดภัยวิธีการแก้ปัญหาที่มีอัตราความสำเร็จสูง / ทำสำเนาอาจไม่ได้เป็นคนแนะนำและ / หรือที่ดีที่สุดวิธีการแก้ปัญหาและรองในทางกลับกัน อย่างไรก็ตามเนื่องจากคุณถามเกี่ยวกับวิธีแก้ปัญหาที่แนะนำตัวเลือก (2)จากรายการของคุณ (แม้ว่าจะเกิดข้อผิดพลาดได้ง่าย) ก็จะเป็นวิธีที่เร็วและแนะนำ! ตัวเลือก (1) & (3)อยู่ในหมวดหมู่ที่ไม่ปลอดภัยเนื่องจากจะทำงานภายใต้สถานการณ์ส่วนใหญ่ PS: การโพสต์ส่งออกการตั้งค่าการกำหนดค่าบางอย่าง (มากที่สุด) สามารถเปลี่ยนแปลงได้ (หากใช้ตัวเลือก 1/3)! ... หวังว่านี่จะช่วยได้
อามาร์

คำตอบ:


164

ทำได้ดีมากสำหรับการทำวิจัยของคุณ ฉันใช้ตัวเลือกทั้งสามเป็นประจำ

  1. (ใช้“ยูทิลิตี้นำเข้า / ส่งออก”) นี่เป็นวิธีที่ง่ายที่สุดเพราะมันรวม VM ทั้งหมดไว้ในไฟล์เดียวและถ่ายโอนไปโดยไม่มีปัญหาสวยมากทุกครั้ง อย่างไรก็ตามในประสบการณ์ของฉันเมื่อสร้างไฟล์ OVA หรือ OVF เพื่อส่งออกมันจะทิ้งสแน็ปช็อตทั้งหมดและหากทำอย่างไม่ถูกต้องอาจส่งผลให้เกิดไฟล์ VMDK เมื่อคุณนำเข้า VM อีกครั้งคุณควรเลือกประเภทของไฟล์ HDD ที่คุณต้องการสร้าง VDI หรือ VMDK

  2. (คัดลอกโฟลเดอร์เครื่องทั้งหมดเสมือนมี.vdiและ.vboxไฟล์) นี่คือตัวเลือกที่ฉันต้องการและถึงแม้ว่าฉันจะต้องแก้ไขไฟล์ XML สองสามครั้งมันเป็นความผิดของตัวเองที่ทำให้เกิดปัญหาขึ้น ตรวจสอบให้แน่ใจว่าเมื่อคุณคัดลอก VM คุณจะได้รับไฟล์ทั้งหมดที่เกี่ยวข้อง ปัญหาที่ฉันพบคือเมื่อสแนปชอตและไฟล์ VDI รองบางไฟล์อยู่ในไดเรกทอรีที่ไม่ถูกต้องและไม่ได้คัดลอกอย่างถูกต้อง หากคุณคัดลอกไฟล์ทั้งหมด (และสิทธิ์) คุณไม่ควรมีปัญหาใด ๆ

  3. (โคลน VDI โดยใช้“ Virtual Media Manager” จากนั้นสร้าง VM บนเครื่องเป้าหมายอีกครั้ง แต่ใช้ VDI ที่โคลนเป็นฮาร์ดดิสก์) สิ่งนี้เป็นที่ต้องการน้อยกว่าเพราะคุณมี VM 2 ชุดและอาจทำให้เกิดปัญหาการออกใบอนุญาตปัญหาเครือข่าย ฯลฯ ขึ้นอยู่กับว่าคุณโคลนไฟล์ VDI อย่างไร

โดยสรุปฉันขอแนะนำตัวเลือกที่ 2 แน่นอนว่าคุณต้องได้รับไฟล์ที่จำเป็นทั้งหมดเมื่อคุณย้ายมัน


ขอบคุณสำหรับการตอบกลับ. ฉันจะรออีกสองสามวันเพื่อดูว่าใครมีจุดอื่น (+1)
Seyed Mohammad

ดูเหมือนว่าไม่มีใครเพิ่มอะไรเลย ... ดังนั้นฉันจึงทำเครื่องหมายนี่เป็นคำตอบ
Seyed Mohammad

เพียงแค่การอ้างอิงเพิ่มเติมสำหรับตัวเลือกที่ 1, การเชื่อมโยงหลังจากการนำเข้ารูปแบบคือ VDMK ดูเหมือนว่าจะได้รับการพิจารณาและไม่สามารถเปลี่ยนแปลงได้
simongcc

1
@tbenz ฉันจะหลีกเลี่ยงการรับ VMDK เมื่อส่งออกได้อย่างไร
Don Rhummy

13
สิ่งที่จะเสร็จสมบูรณ์: ถ้าคุณทำตัวเลือกที่ 2 ให้ทำสิ่งนี้บนเครื่องเป้าหมาย: Virtualbox> เครื่อง> เพิ่ม> [นำทางไปยังโฟลเดอร์ที่ไฟล์ VM ทั้งหมดเป็น] อาจเป็นความคิดที่ดีที่จะวางไฟล์ VM ใหม่ในโฟลเดอร์เดียวกันที่เก็บ VM อื่นทั้งหมดของคุณ
Donn Lee

47

วิธีที่ 2 ทำงานได้ดีในขณะนี้(ด้วย VirtualBox 4.0 และสูงกว่า)โดยไม่ต้องมีการแก้ไข XML ใด ๆ :

  1. หยุดเครื่องเสมือนของคุณ
  2. ออกจาก VirtualBox
  3. คัดลอกโฟลเดอร์ VM ไปยังตำแหน่งใหม่
  4. รีสตาร์ท VirtualBox และลบ VM เก่า
  5. ไปที่เมนูเครื่อง≥เพิ่มและเรียกดูโฟลเดอร์เก่าของคุณ

แค่นั้นแหละ!

ps: ฉันมี VirtualBox 4.3.20 บน OSX 10.10

ดูโพสต์ฟอรัม VirtualBox นี้สำหรับรายละเอียดเพิ่มเติม


4
ไม่อยากเชื่อเลยว่าจะไม่ได้รับการโหวตมากเท่าที่ควร! นี่เป็นวิธีที่ง่ายที่สุด (ง่ายเกินไป!) เมื่อย้าย VMs ภายในระบบปฏิบัติการเดียวกัน ประสบความสำเร็จในการย้าย VM สองตัวจากไดรฟ์ C ไปยังไดรฟ์ D. Mine เป็น Win7 64 บิตพร้อม Virtualbox 5.x
Edwin Yip

1
สิ่งนี้ใช้ไม่ได้กับการย้ายไฟล์ VDI เพียงเครื่องเสมือนทั้งหมด
DustWolf

1
@ DustWolf ใช่ แต่นั่นคือสิ่งที่คำถามของ op เกี่ยวข้องกับ
เดวิด

@ ฝุ่นละอองนี่คือสิ่งที่เดวิดพูด "คัดลอกโฟลเดอร์ VM ไปยังตำแหน่งใหม่" เท่าที่ฉันเกี่ยวข้องโฟลเดอร์นี้มีเครื่องเสมือนทั้งหมด ฉันพลาดอะไรไปรึเปล่า?
Nikos

@RestlessCobra ใช่โฟลเดอร์ใหม่มีทั้ง VM
เดวิด

17

ตัวเลือกที่ฉันชอบคือตัวเลือก 2 เช่นกัน:

  1. คัดลอกโฟลเดอร์ VM ทั้งหมดที่มีไฟล์. vdi และ. vbox

แต่บางครั้ง UUID ไม่ตรงกันจะเกิดขึ้น บ่อยครั้งสิ่งนี้จะเกิดขึ้นหากคุณเพียงแค่คัดลอกอิมเมจดิสก์ VDI ของเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง แต่ฉันได้เกิดขึ้นระหว่างการทำสำเนาไดเรกทอรีทั้งหมดแบบตรง ๆ เช่นกัน

ดังนั้นหากนี่คือข้อความที่คุณได้รับหลังจากย้ายเครื่องเสมือนและพยายามเริ่มต้นในการตั้งค่าใหม่:

ไม่สามารถเปิดฮาร์ดดิสก์

ไม่สามารถลงทะเบียนฮาร์ดดิสก์ได้เนื่องจากมีฮาร์ดดิสก์ที่มี UUID อยู่แล้ว

เพียงเข้าไปในไดเรกทอรีของเครื่องเสมือนของคุณ แน่นอนเปลี่ยนเส้นทางจริงเพื่อให้ตรงกับเส้นทางจริงที่คุณจะเข้าสู่:

cd /full/path/to/virtualbox/virtualmachine/Sandbox

และเรียกใช้คำสั่งนี้เพื่อกำหนด UUID ใหม่ให้กับดิสก์:

VBoxManage internalcommands sethduuid Sandbox.vdi

9

ในกรณีที่คนอื่นกำลังมองหาคำตอบนี้ฉันย้าย Virtual Box VMs ไปยัง Win7 อีก 5 ตัวเพื่อติดตั้งบนฮาร์ดไดรฟ์ตัวใหม่บนเครื่องเดียวกัน ฉันตระหนักว่าไดรเวอร์ในเครื่องใหม่ที่สมบูรณ์อาจจะแตกต่างกันไปและอาจมีผลกระทบในทางลบต่อการเคลื่อนที่ แต่ฉันได้ทำเอกสารกระบวนการด้านล่างด้วยความหวังว่ามันจะช่วยบางคนได้

  • ไม่มีความต้องการในการโคลน VM หรือแก้ไขไฟล์ xml รุ่น VB นั้นค่อนข้างเป็นปัจจุบัน: 4.3.12r93773
  • สำเนาใหม่ของ VM ถูกสร้างขึ้นในโฟลเดอร์ใหม่ / ไดรฟ์ที่ใช้ร่วมกันเพื่อรักษา VM ที่มีอยู่ / เก่าเหมือนเดิม ฉันยังคงสามารถบู๊ตจากฮาร์ดไดรฟ์เก่าซึ่งฉันเก็บไว้เพื่อแก้ไขปัญหา / สำรองซ้ำซ้อนจนกว่าฉันจะพอใจกับการตั้งค่าใหม่ของฉัน ดังนั้นฉันสามารถเข้าถึง VM เก่าในสถานะเดิมหากจำเป็น
  • ตัวอักษรของไดรฟ์จะแตกต่างกัน / อาจไม่จำเป็นขึ้นอยู่กับการตั้งค่าของคุณ

บนโฮสต์ Win7 เก่า:

  1. ตรวจสอบให้แน่ใจว่า VM ทั้งหมดปิดอยู่

บนโฮสต์ Win7 ใหม่:

  1. สร้างโฟลเดอร์ใหม่ที่ชื่อว่า X: \ NewVMs \ VirtualBox VMs (จากเครื่อง Win7 ใหม่เพื่อให้แน่ใจว่าได้รับอนุญาต OK)
  2. คัดลอก / วาง (อย่าลาก) VMs ทั้งหมดและเนื้อหาของโฟลเดอร์ที่เกี่ยวข้องจากโฟลเดอร์เก่าไปยังโฟลเดอร์นี้ (ใช้การอนุญาตใหม่)
  3. ถอนการติดตั้ง VirtualBox (ถ้าติดตั้ง)
  4. ลบโฟลเดอร์. VirtualBox และเนื้อหาทั้งหมด (หากมีอยู่)
  5. รีบูตเพื่อยืนยันว่าไม่มีไฟล์โปรแกรมหรือรายการรีจิสตรีเหลืออยู่ (หากถอนการติดตั้ง VirtualBox เก่า)
  6. ติดตั้ง / ติดตั้ง VirtualBox ใหม่ (ให้แน่ใจว่าคุณกำลังใช้เวอร์ชันเดียวกับ VirtualBox ซึ่ง VMs ถูกสร้างขึ้นบนโฮสต์ / เครื่องเก่า (ในกรณีของฉันเวอร์ชั่น 4.3.12r93773)
    สำคัญ: (อย่าเลือกช่องทำเครื่องหมายเพื่อเปิด / เรียกใช้ VirtualBox เมื่อสิ้นสุดการติดตั้ง)
  7. คัดลอก / วาง (อย่าลาก) .virtualbox โฟลเดอร์และเนื้อหาจาก Old Win7 Host (ปกติคือ C: \ Users [ชื่อผู้ใช้] .VirtualBox
  8. ตอนนี้เปิด VirtualBox
  9. ตั้งค่ากำหนดสำหรับโฟลเดอร์สร้าง VM เริ่มต้นใหม่เป็นพา ธ ไฟล์เดียวกันกับโฟลเดอร์ VirtualBox VMs ที่สร้างขึ้นใหม่: X: \ NewVMs \ VirtualBox VMs
  10. ทดสอบสถานะของ VMs

โชคดี.


แม้ว่านี่จะเป็นคำตอบที่ให้ข้อมูล แต่ก็ไม่ได้เกี่ยวกับสิ่งที่ถูกถาม คำถามอื่นอาจเป็นตำแหน่งที่เหมาะสมกว่าสำหรับคำตอบของคุณ
akTed

@Steven "... เป็นหลักย้ายจากโฮสต์ระบบหนึ่งไปยังอีกระบบปฏิบัติการ ... "?
pythonlarry

2

สำหรับกรณีพิเศษที่:

  • คุณมีเพียง VM เดียว (หรือต้องการย้าย VMs ทั้งหมดของคุณ)
  • และโฮสต์เป็นฮาร์ดแวร์เดียวกันกับระบบปฏิบัติการรุ่นเดียวกัน (หรือติดตั้งระบบปฏิบัติการเดียวกันกับเครื่องเดียวกัน)

หากคุณอยู่ในกรณีนี้สิ่งต่างๆนั้นง่าย:

  1. ปิด VirtualBox บนโฮสต์ทั้งสอง
  2. คัดลอก.config/VirtualBoxและVirtualBox VMsโฟลเดอร์จากโฮสต์ต้นทาง
  3. คัดลอกโฟลเดอร์เหล่านี้ไปยังโฮสต์ปลายทาง
  4. เริ่ม VirtualBox บนโฮสต์ปลายทาง

1

วิธีที่ 4

ใน VirtualBOX:

  1. ปิด VM
  2. คลิกขวาและลบ VM (อย่าลบไฟล์)
  3. ไปที่ไฟล์> Virtual Media Manager และลบ. vdi
  4. ไปที่ไฟล์> การตั้งค่า> ทั่วไปและตั้งค่าโฟลเดอร์เครื่องเริ่มต้นเป็นตำแหน่งใหม่
  5. สร้าง VM ใหม่ใช้โหมดผู้เชี่ยวชาญเพื่อสร้าง VM โดยไม่มีฮาร์ดไดรฟ์

ใน File Explorer:

  1. ค้นหาไฟล์. vdi และคัดลอก
  2. ไปที่โฟลเดอร์เครื่องเริ่มต้นใหม่จะมีโฟลเดอร์ VM อยู่ภายใน
  3. วางไฟล์. vdi ในโฟลเดอร์ VM ใหม่

ย้อนกลับไปใน VirtualBOX:

  1. คลิกขวาที่ VM และเปิดการตั้งค่า
  2. ไปที่การจัดเก็บข้อมูล> ตัวควบคุม: SATA และเพิ่มฮาร์ดดิสก์คลิกเลือกดิสก์ที่มีอยู่ 11. เลือกไฟล์. vdi ในโฟลเดอร์ VM ใหม่

หมายเหตุ:หากวิธีที่ 2 หยุดการติดตั้ง VirtualBOX ให้ไปที่ C: \ Users \ .VirtualBox และลบ VirtualBox.xml และเปลี่ยนชื่อ VirtualBox.xml-prev เป็น VirtualBox.xml


0

ฉันใช้วิธีที่ 2 เช่นกันในการเคลื่อนย้ายเครื่องเสมือนของฉันและฉันไม่ต้องทำการเปลี่ยนแปลงใด ๆ ในไฟล์ XML แต่มีข้อผิดพลาดสองสามอย่างกับ USB และการแชร์ไฟล์และด้านล่างคือวิธีที่ฉันแก้ไขพวกเขาพร้อมกับกระบวนการ:

  1. คัดลอกเครื่องเสมือนจากพีซีเครื่องเก่าไปยังเครื่องใหม่ ไฟล์เครื่องเสมือนแตกต่างจากเครื่อง Oracle Virtual เอง ไฟล์เหล่านี้เป็นปกติที่C: \ Users \\ VirtualBox VMs \ ฉันเลือกVirtualBox VMs \ part ทั้งหมดและคัดลอกไปยังตำแหน่งที่คล้ายกันบนพีซีเครื่องใหม่ สิ่งนี้คัดลอกเครื่องเสมือนทั้งหมดที่ฉันมีบนพีซีดั้งเดิม

  2. ขณะนี้บนพีซีเครื่องใหม่ให้เรียกใช้กล่องเสมือนจริงและไปที่เมนู> เครื่อง> เพิ่มและเลือกไฟล์. vbox จากโฟลเดอร์ที่คัดลอก แค่นั้นแหละ.

  3. ตอนนี้เมื่อฉันเรียกใช้เครื่องเสมือนบนพีซีเครื่องใหม่ฉันพบข้อผิดพลาดเมื่อบูทเครื่อง:

ป้อนคำอธิบายรูปภาพที่นี่

  1. ฉันไม่รู้ว่าทำไมคอนโทรลเลอร์ USB ไม่ทำงานเพราะทำงานเหมือนกันกับคอมพิวเตอร์เครื่องเดิม ฉันไปข้างหน้าและติดตั้งVirtualBox Extension Pack

  2. การติดตั้งนี้แปลกเล็กน้อยเพราะการดาวน์โหลดการติดตั้งไม่ใช่ไฟล์ที่ปฏิบัติการได้ ฉันคลิกที่ Oracle_VM_VirtualBox_Extension_Pack-5.1.4-110228.vbox-extpack และเลือก 'เลือกโปรแกรมจากรายการโปรแกรมที่ติดตั้ง' และเลือกกล่องเสมือนจริงของ Oracel และติดตั้งส่วนขยาย ที่แก้ไขปัญหา แต่อีกวิธีหนึ่งที่ไม่ต้องการคือคุณสามารถปิดการใช้งานยูเอสบี

  3. หากคุณมีโฟลเดอร์ที่แชร์ใน VM ดั้งเดิมโฟลเดอร์เหล่านั้นอาจแตกต่างกันและคุณจะได้รับข้อผิดพลาด ตรวจสอบผู้ที่อยู่ในการตั้งค่า >> โฟลเดอร์ที่ใช้ร่วมกันและลบรายการที่เสียหาย ข้อความแสดงข้อผิดพลาดจะมีลักษณะดังนี้

นี้.

นั่นคือทั้งหมดที่


-1

zar, สิ่งแรกก่อน ... ไม่เคยย้ายเครื่องจักรที่อยู่ในสถานะที่บันทึกไว้ก่อนที่จะย้ายคุณจะต้องปิดตัวแขกไม่เพียงแค่บันทึกสถานะ

ตรวจสอบให้แน่ใจว่าคุณใช้ VirtualBOX เวอร์ชันเดียวกันกับโฮสต์ทั้งสอง แต่ไม่เพียง แต่รุ่น VirtualBOX รวมถึงเวอร์ชันแพ็คส่วนขยาย ... หรืออย่างน้อยโฮสต์ใหม่จะมีเวอร์ชันที่สูงกว่า แต่ไม่เคยเป็นรุ่นที่ต่ำกว่าในรุ่นที่สอง

และในที่สุดฉันก็เรียนรู้วิธีที่ยากลบการกำหนดค่าโฟลเดอร์ SHARED บน VirtualBOX ก่อนที่จะย้ายเครื่องจากนั้นสร้างมันใหม่ในวิธีที่ถูกต้อง ... สำคัญมากเมื่อโฮสต์เป็นระบบปฏิบัติการที่แตกต่างกัน (โฮสต์ Windows / Linux)

...

ส่วนสุดท้ายใช้ไฟล์ VDI ที่ไม่น่าเชื่อถือทำให้สิ่งต่างๆยากขึ้นเล็กน้อย VirtualBox มีข้อผิดพลาดใหญ่

หากต้องการดูการทำงานของ Bug:

  • สร้าง VDI ที่ไม่เปลี่ยนรูปแบบ (เช่นที่ฉันใช้สำหรับ pagefile.sys)
  • สร้างสองหรือสาม VM บน VirtualBOX
  • ย้ายหนึ่งในนั้นไปด้านบนของรายการ (เพียงเพื่อหลีกเลี่ยงความเสียหายใด ๆ ของคุณ)
  • สำรองข้อมูลไฟล์. vbox ของเครื่องที่คุณสร้างขึ้น (สำหรับการเปรียบเทียบหลังจาก BUG เกิดขึ้น)
  • แนบ VDI ที่ไม่น่าเชื่อถือเข้ากับเครื่องมากกว่าหนึ่งเครื่อง (ยกเว้นที่อยู่ด้านบนของรายการ)
  • ตอนนี้ดู. vbox ของเครื่องที่อยู่ด้านบนของรายการ

เครื่องนั้นได้รับการแก้ไข แต่ก็มีการอ้างอิงไปยังเครื่องอื่น ๆ ที่ไม่น่าเชื่อถือ VDI

ดังนั้น BUG คือ: แก้ไขเครื่องหนึ่งที่เพิ่ม VDI ที่ไม่เปลี่ยนแปลงซึ่งใช้โดยเครื่องอื่นที่มีผลกับเครื่องที่ด้านบนของรายการ

เพราะเหตุใดฉันจึงใช้ 4GiB VDI เดิมบนเครื่อง Windows ทุกเครื่อง ง่ายมันเป็นดิสก์ MBR ที่มีพาร์ทิชัน FAT32 ที่ฉันใส่ pagefile.sys เนื่องจากมันไม่สามารถเปลี่ยนแปลงได้เครื่องเสมือนทั้งหมดจะสร้างไฟล์ในโฟลเดอร์ snapshot ของพวกเขาที่พวกเขาเก็บการเปลี่ยนแปลงและที่หายไปในการบูตครั้งต่อไปดังนั้นฉันจึง ไม่จำเป็นต้องใช้ 4GiB สำหรับแขกแต่ละคนที่เก็บไว้ในโฮสต์ดิสก์เพียงอันเดียว ... วิธีที่ฉันประหยัด GiB ได้มากเพราะฉันมีหน้าต่างที่แตกต่างกันมากกว่า 20 หน้าต่างสำหรับการทดสอบแอพที่ฉันพัฒนาขึ้นมาสำหรับฉันเองรวมกันทั้งหมด (XP, Vista , 7, 8, 8.1, 10) * (32Bits, 64Bits) * (เช่นเดียวกับที่ติดตั้งครั้งแรกหลังจากแต่ละ ServicePack หลังจากอัปเดตหน้าต่างเต็มรูปแบบ) ฉันได้รับแขกจำนวนมาก ... ดังนั้นพวกเขาทั้งหมด ฉันแบ่งปัน 4GiB VDI ที่ไม่เปลี่ยนแปลงสำหรับ ram เสมือน (pagefile.sys)

และถ้าคุณปล่อยให้ BUG ดำเนินต่อไปให้ลองย้ายเครื่องหนึ่งเครื่องไปยังโฮสต์ VirtualBOX อื่น (โปรดจำไว้ว่าพวกเขาเป็นเพียงเครื่องเสมือนจริงที่มีการกำหนดค่าให้กับพวกเขาและยังไม่มีแขกที่ติดตั้งไว้บนพวกเขา) คุณจะเห็น VirtualBox เพิ่มเนื่องจาก VDIs บางอย่างหายไป (เป็น FALSE และ TRUE เป็นเครื่องแรกที่เก็บข้อมูลอ้างอิงถึง VDI ดังกล่าวไว้ใน insting of beeing บนเครื่องที่ถูกต้อง)

ตอนนี้เปรียบเทียบไฟล์. VBOX ของพวกเขาทั้งหมดกับไฟล์สำรองข้อมูลย้อนกลับ ... โปรดทราบว่ามีการแก้ไขไฟล์ใดผิดหรือไม่ ... ใช่เป็นไฟล์ที่อยู่ด้านบนสุดของรายการ

BUG นี้ได้รับแจ้งจาก VirtualBOX เมื่อหลายปีก่อนพวกเขายังไม่สามารถแก้ไขได้ ... และมันทำให้เกิดปัญหามากมาย

ยิ่งไปกว่านั้นถ้าคุณย้ายอันดับหนึ่งในเครื่องเสมือนไปยังตำแหน่งที่ต่ำกว่าให้ปิด VirtualBox แล้วเปิดใหม่อีกครั้ง ... จะบอกคุณว่าบางเครื่องเสียหายและไม่สามารถเริ่มต้นได้ ... ใช่คนแรกในรายการ จะต้องได้รับการปฏิบัติในรูปแบบอื่นหากคุณไม่ต้องการมีปัญหามาก

มันเป็น BUG ที่ไม่ดีจริงๆที่ใช้เวลาหลายวันในการค้นพบ (หลายปีที่ผ่านมา) ฉันเรียนรู้วิธีที่ยาก!

ฉันเอาชนะมันได้โดยใช้เครื่องจักรที่ฉันเรียกว่า:

  • Common Inmutable Disks

มันมีการกำหนดค่าที่ว่างเปล่าและมีเพียง VDI เดียวใช่คุณถูกต้องคุณเดาแล้ว VDI i ที่ไม่สามารถแบ่งปันได้สำหรับเครื่องเสมือนที่เหลือทั้งหมด

เมื่อฉันเปิดไฟล์. VBOX ฉันเห็นข้างในนั้นมีหลายบรรทัดใน<MediaRegistry> <HardDisks>ส่วนหนึ่งต่อแต่ละเครื่องที่ฉันใช้ VDI ที่ไม่เปลี่ยนแปลงซึ่ง ... เป็นเพียงตัวอย่าง (ฉันลบข้อมูลส่วนตัว):

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
      <HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
      ... and so on ...  // This belongs to other virtual Machine
    </HardDisk>
  </HardDisks>
</MediaRegistry>

พริตตี้ BUG ไม่ได้รับการแก้ไขตั้งแต่ปี

เมื่อต้องการย้ายเครื่องจักรดังกล่าว ... คุณต้องแก้ไขไฟล์. VBOX ด้วยตนเองเพื่อใส่ดิสก์อ้างอิงทั้งหมดบนโฮสต์ใหม่บนเครื่องแรก (อันที่อยู่ด้านบนของรายการ) ก่อนเพิ่ม. VBOX ไฟล์ในรายการดังนั้นเมื่อเพิ่มพวกเขา VirtualBOX มีการอ้างอิงถึง VDIs ที่หายไป (หายไปเกิดจากข้อผิดพลาดใหญ่)

สิ่งนี้เกิดขึ้นเพราะทุกครั้งที่คุณเชื่อมต่อ VDI ที่ใช้กับเครื่องอื่น VirtualBOX จะอัปเดตไฟล์. VBOX สองเครื่อง (อันที่เป็นของเครื่องที่คุณใช้งาน) และเป็นรายการแรกในรายการ

ฉันไม่แน่ใจทั้งหมดว่าจะเกิดอะไรขึ้นเมื่ออยู่ในรายการคนแรกไม่มี VDI ทั่วไปที่แนบมากับมัน ... ดีกว่าที่จะไม่ลองเห็นสิ่งที่ฉันเห็น

ดังนั้นการย้ายไปที่โฮสอื่นจึงมีความซับซ้อนมากกว่าสิ่งที่ดูเหมือนว่าจะเกิดจากการติดตั้งโครงสร้างไฟล์ภายใน. VBOX ที่แย่มากและเนื่องจาก BUGs ขนาดใหญ่จริงๆเมื่อ VirtualBOX แก้ไข

ล้มเหลว:

  • โครงสร้างภายใน (XML) ขึ้นอยู่กับ HOST (Windows หรือ Linux)
  • การแก้ไขเครื่องหนึ่งสามารถแก้ไขเครื่องอื่นได้ไม่เพียง แต่แก้ไขผึ้งเครื่องเดียวเท่านั้น
  • ... มีอะไรอีกไหม

ต้องการมากขึ้น ... ฉัน allways ย้ายเครื่องทำเช่นนี้ (และไม่มีปัญหาไม่เคย):

  1. จดรายการเครื่องทั้งหมด (การสั่งซื้อการจัดกลุ่ม ฯลฯ )
  2. จดรายการแรกในรายการ (การกำหนดค่าทั้งหมด)
  3. จดคุณสมบัติของเครื่องจักรทั้งหมดที่ฉันต้องการย้ายไปยังโฮสต์อื่น
  4. คัดลอกไฟล์. vbox เป็นไฟล์. txt (ไฟล์ที่อยู่ด้านบนของรายการ + ทุกเครื่องที่ฉันต้องการย้ายข้อมูล)
  5. สร้างเครื่องทั้งหมดใหม่ (และมีเครื่องพิเศษอยู่ด้านบนของรายการ) ใน VirtualBox บนโฮสต์ใหม่
  6. ปิด VirtualBox บนโฮสต์ใหม่
  7. เปรียบเทียบเปรียบเทียบ. txt เก่ากับไฟล์. vbox ใหม่และคัดลอกจาก. txt เป็น. vbox บางส่วนด้วยวิธีของมนุษย์ไม่ใช่แค่คัดลอกและวาง
  8. เปิด VirtualBox และแนบ VDIs ทั้งหมดตามลำดับที่ถูกต้อง
  9. ปิด VirtualBox บนโฮสต์ใหม่อีกครั้ง
  10. เปรียบเทียบเปรียบเทียบ. txt เก่ากับไฟล์. vbox ใหม่และ 'แก้ไข' จาก. txt เป็น. vbox บางส่วนด้วยวิธีของมนุษย์ไม่ใช่แค่คัดลอกและวาง

ส่วนที่เหลือทั้งหมด (โฟลเดอร์สแน็ปช็อตและไฟล์ VDI) ฉันคัดลอกตามปกติ (คัดลอก & วางระบบไฟล์)

การทำงานด้วยตนเองอย่างหนักทั้งหมดเกิดจาก BigBox VirtualBox: แก้ไข / เปลี่ยนแปลงเครื่องที่ไม่ได้รับการแก้ไขเมื่อคุณแนบ VDI ที่ไม่น่าเชื่อถือซึ่งใช้กับเครื่องมากกว่าหนึ่งเครื่องมิฉะนั้นการคัดลอกและวางไฟล์. VBOX แบบธรรมดาจะเพียงพอ แก้ไขเส้นทางโฟลเดอร์ที่แชร์ ฯลฯ )


-2

คัดลอกโฟลเดอร์ที่มีเครื่องไปยังปลายทางจากเมนู: "Machine" ---> "Add" จากนั้นเลือกไฟล์ vbox ไม่ใช่ไฟล์ vdi สำหรับฉันนี้ไปอย่างไม่มีที่ติ ไม่แน่ใจว่าฉันโชคดีหรือว่าควรจะใช้วิธีนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.