กำลังพยายามเปิดการกำหนดค่า VM ซึ่งมี UUID เดียวกันกับเครื่องเสมือนที่มีอยู่


26

เมื่อพยายามที่จะเพิ่มเครื่องเสมือน VirtualBox สองเครื่องซึ่งได้รับการคัดลอกตอนแรก (ผ่านการคัดลอกไฟล์อย่างง่าย) จากแหล่งเดียวกันในการเพิ่มอันที่สองฉันได้รับข้อความ

Failed to open virtual machine [...]
Trying to open a VM config [...] which has the same UUID as an existing virtual machine.

(ใช่เครื่องควรทำการโคลนแทนการคัดลอกไฟล์ง่าย ๆ แต่มันก็สายเกินไปแล้วในตอนนี้)

คำตอบ:


40

คุณสามารถใช้VBoxManage internalcommands sethduuid <VDI/VMDK file>(เรียกใช้จากไดเรกทอรีติดตั้ง VBox) เพื่อเปลี่ยน HD UUID แต่มีข้อบกพร่องสองประการ: ไม่อัปเดต.vboxไฟล์และไม่เปลี่ยน UUID ของเครื่อง (ฉันไม่พบวิธีใด ๆ ในการใช้ VBoxManage ) เพียงแค่ HD UUID

การทำงานต่อไปนี้สำหรับฉัน (Win 7 เวอร์ชัน VirtualBox ล่าสุด):

  1. เรียกใช้VBoxManage internalcommands sethduuid <VDI/VMDK file> สองครั้ง (ครั้งแรกเป็นการสร้าง UUID อย่างสะดวกคุณสามารถใช้วิธีการสร้าง UUID อื่นแทน)
  2. เปิด.vboxไฟล์ในโปรแกรมแก้ไขข้อความ
  3. แทนที่ UUID ที่พบใน<Machine uuid="{...}"ด้วย UUID ที่คุณได้รับเมื่อคุณวิ่งsethduuidครั้งแรก
  4. แทนที่ UUID ที่พบใน<HardDisk uuid="{...}"และใน<Image uuid="{}"(ไปยังจุดสิ้นสุด) ด้วย UUID ที่คุณได้รับเมื่อคุณวิ่งsethduuidครั้งที่สอง

คุณสามารถเพิ่มเครื่องเสมือนหลังจากนั้น ไม่ใช่วิธีที่สะอาดมาก แต่ดูเหมือนจะไม่ทำให้เกิดปัญหาใด ๆ


1
สิ่งนี้ทำงานได้สำหรับฉัน แต่ฉันยังมี DVD "แทรก" ใน VM ที่ฉันคัดลอกด้วยตนเอง เมื่อผมแก้ไขไฟล์ .vbox ของฉันฉันมีการเปลี่ยนแปลง<DVDImages>...</DVDImages>ไปเพียง<DVDImages />เพื่อ "นำออก" ดีวีดีที่มี UUID ที่ซ้ำกัน
JPhi1618

โปรดทราบว่าหาก VM มีสแนปชอตคุณจะต้องทำตามขั้นตอนเดียวกันกับไฟล์ vdi ในโฟลเดอร์ "Snapshots"
เรนท์

6

ฉันพบวิธีที่ง่ายกว่าในการทำเช่นนั้น

โคลนเครื่องเสมือนที่มีอยู่ สิ่งนี้จะสร้างเวอร์ชันใหม่ที่มี uuid ใหม่ แต่น่าจะเป็นเครื่องเดียวกัน

จากนั้นคัดลอกไฟล์ที่คุณต้องการเพิ่มลงใน \ user (ชื่อของคุณ) \ Virtual Box VMs \ (หรือที่ใดก็ตามที่ตั้งสำหรับเครื่องเสมือนของคุณ) และเขียนทับไฟล์ที่มีอยู่ทั้งหมดที่นั่นเพื่อแทนที่เครื่องที่มีอยู่

ฉันจะสำรองเครื่องที่มีอยู่ก่อนในกรณีก่อนที่จะทำ แต่มันก็ใช้ได้ดีที่นี่ ใช้เพื่อกลับไปยังการสำรองข้อมูลก่อนหน้าของ VM ในขณะที่รักษาเวอร์ชันที่มีอยู่เป็นโคลน


หากคุณมีพื้นที่ดิสก์เพียงพอนี่เป็นวิธีที่ง่ายที่สุดขอบคุณ Robert
sddk

หากใครทำสิ่งนี้ - พวกเขาควรตรวจสอบให้แน่ใจว่าไฟล์ vbox มีแท็ก uuid ของฮาร์ดแวร์ที่ตรงกับเครื่อง uuid :: <hardware uuid = "{... }"> จากนั้นพวกเขาสามารถเปลี่ยนฮาร์ดดิสก์ uuid และ uuid ของเครื่องโดยไม่ต้องออก ปัญหาใด ๆ <hardware uuid = "{... }">
StixO

2

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่ฉันวิ่งตามข้อผิดพลาดนี้ ฉันแก้ไขมันโดย:

  1. เปิดตัวจัดการกล่องเสมือน
  2. คลิกขวาที่เครื่องเสมือนใน Virtual Box Manager
  3. คลิก "ลบ"
  4. ป๊อปอัปจะปรากฏขึ้น เลือก "ลบเท่านั้น" ซึ่งจะลบร่องรอยทั้งหมดของกล่องเสมือนออกจาก Virtual Box Manager
  5. ปิดตัวจัดการกล่องเสมือน
  6. ใช้ตัวจัดการไฟล์ Linux เรียกดูโฟลเดอร์ที่มีเครื่องเสมือน
  7. ลบ (หรือย้าย) ทุกอย่างยกเว้นไฟล์. vmdk เสมือนฮาร์ดดิสก์
  8. เปิดตัวจัดการกล่องเสมือน
  9. คลิก "เครื่องจักร"
  10. คลิก "ใหม่"
  11. ตั้งชื่อเครื่องใหม่ (ฉันใช้ชื่อเดียวกับที่เคยใช้)

    หมายเหตุ: ชื่อของเครื่องจะกลายเป็นชื่อของไดเรกทอรีที่จะมีเครื่องเสมือนดังนั้นเลือกอย่างชาญฉลาดและยังทราบว่าถ้าคุณต้องการให้ไฟล์. vmdk อยู่ในไดเรกทอรีใหม่ว่าจะใช้ขั้นตอนเพิ่มเติมในกล่องเสมือน ผู้จัดการ

  12. เลือกประเภทและรุ่นที่เหมาะสมสำหรับเครื่องเสมือนที่มีปัญหาและคลิก "ถัดไป"
  13. เลือกขนาดหน่วยความจำที่คุณต้องการให้เครื่องเสมือนจัดสรรและคลิก "ถัดไป"
  14. เลือก "การใช้และไฟล์ฮาร์ดดิสก์เสมือนที่มีอยู่" และเลือกโดยการเรียกดูตำแหน่ง
  15. เลือก "สร้าง"

เพียงทำตามคำแนะนำที่ปรากฏจากนั้นเริ่มเครื่องเสมือน

ทุกอย่างทำงานได้ดีไม่ต้องเปิดใช้งาน Windows หรืออื่น ๆ ที่จำเป็น


1

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


1

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

... ณ จุดนี้คุณสามารถทำการโคลนนิ่งได้ถ้านั่นคือสิ่งที่คุณต้องการ ในกรณีของฉันไม่จำเป็นต้องใช้ความพยายามเพิ่มเติมเนื่องจากฉันไม่จำเป็นต้องใช้ตำแหน่งเดิมของ VM อีกต่อไป


นี่คือทางออกที่ง่ายที่สุดและไม่เพียงเท่านั้นมันยังใช้งานได้
shmu

-1

ผู้ใช้ TGR ทำให้ถูกต้อง แต่ฉันต้องทำการเปลี่ยนแปลงเพิ่มเติมอย่างใดอย่างหนึ่ง: ใน vbox XML ฉันต้องเปลี่ยน Image uuid เพื่อให้ตรงกับ HardDisk uuid (UUID ที่สองที่สร้างบนบรรทัดคำสั่ง)

<StorageControllers>
   <StorageController ...>
     <AttachedDevice ...>
       <Image uuid="{ [second UUID] }"/>

-1

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

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