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 ที่ไม่ดีจริงๆที่ใช้เวลาหลายวันในการค้นพบ (หลายปีที่ผ่านมา) ฉันเรียนรู้วิธีที่ยาก!
ฉันเอาชนะมันได้โดยใช้เครื่องจักรที่ฉันเรียกว่า:
มันมีการกำหนดค่าที่ว่างเปล่าและมีเพียง 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 ย้ายเครื่องทำเช่นนี้ (และไม่มีปัญหาไม่เคย):
- จดรายการเครื่องทั้งหมด (การสั่งซื้อการจัดกลุ่ม ฯลฯ )
- จดรายการแรกในรายการ (การกำหนดค่าทั้งหมด)
- จดคุณสมบัติของเครื่องจักรทั้งหมดที่ฉันต้องการย้ายไปยังโฮสต์อื่น
- คัดลอกไฟล์. vbox เป็นไฟล์. txt (ไฟล์ที่อยู่ด้านบนของรายการ + ทุกเครื่องที่ฉันต้องการย้ายข้อมูล)
- สร้างเครื่องทั้งหมดใหม่ (และมีเครื่องพิเศษอยู่ด้านบนของรายการ) ใน VirtualBox บนโฮสต์ใหม่
- ปิด VirtualBox บนโฮสต์ใหม่
- เปรียบเทียบเปรียบเทียบ. txt เก่ากับไฟล์. vbox ใหม่และคัดลอกจาก. txt เป็น. vbox บางส่วนด้วยวิธีของมนุษย์ไม่ใช่แค่คัดลอกและวาง
- เปิด VirtualBox และแนบ VDIs ทั้งหมดตามลำดับที่ถูกต้อง
- ปิด VirtualBox บนโฮสต์ใหม่อีกครั้ง
- เปรียบเทียบเปรียบเทียบ. txt เก่ากับไฟล์. vbox ใหม่และ 'แก้ไข' จาก. txt เป็น. vbox บางส่วนด้วยวิธีของมนุษย์ไม่ใช่แค่คัดลอกและวาง
ส่วนที่เหลือทั้งหมด (โฟลเดอร์สแน็ปช็อตและไฟล์ VDI) ฉันคัดลอกตามปกติ (คัดลอก & วางระบบไฟล์)
การทำงานด้วยตนเองอย่างหนักทั้งหมดเกิดจาก BigBox VirtualBox: แก้ไข / เปลี่ยนแปลงเครื่องที่ไม่ได้รับการแก้ไขเมื่อคุณแนบ VDI ที่ไม่น่าเชื่อถือซึ่งใช้กับเครื่องมากกว่าหนึ่งเครื่องมิฉะนั้นการคัดลอกและวางไฟล์. VBOX แบบธรรมดาจะเพียงพอ แก้ไขเส้นทางโฟลเดอร์ที่แชร์ ฯลฯ )