Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

การแก้ไขข้อผิดพลาดการนำเข้า VirtualBox OVA:แก้ไข E_INVALIDARG 0x80070057

VirtualBox, การนำเข้า OVA และข้อผิดพลาด E_INVALIDARG 0x80070057

อัปเดต:9 ธันวาคม 2568

เมื่อเร็วๆ นี้ ฉันพบปัญหาใหม่ในการผจญภัยในโลกเสมือนจริง ฉันต้องการส่งออกเครื่องเสมือน Linux เครื่องใดเครื่องหนึ่งของฉัน ดังนั้นฉันจึงสามารถใช้มันบนโฮสต์อื่นได้ บนกระดาษมีฟังก์ชันการทำงานอยู่ใน VirtualBox ไฟล์> ส่งออกอุปกรณ์ จากนั้น คุณเลือกเครื่องเสมือนที่ต้องการ ตัดสินใจว่าคุณต้องการใช้รูปแบบใด กำหนดค่าที่อยู่ MAC และปล่อยให้ VirtualBox สร้างไฟล์ ova บนโฮสต์เป้าหมาย คุณนำเข้าอุปกรณ์นี้

ฉันพยายามทำเช่นนี้และพบข้อผิดพลาด GUI บอกว่า E_INVALIDARG 0x80070057 โดยไม่มีรายละเอียดมากเกินไป เมื่ออ่านตั๋วในฟอรัม VirtualBox ฉันได้เรียนรู้ว่าอาจมีปัญหาหลายประการสำหรับความล้มเหลวในกระบวนการนำเข้า แทนที่จะพยายามแก้ไขปัญหาที่อาจเกิดขึ้นทีละปัญหา ฉันเลือกเส้นทางอื่น การนำเข้าเครื่องจักรด้วยตนเองโดยไม่ต้องใช้กระบวนการ OVA ให้ฉันแสดงให้คุณดู

OVA เป็นเพียงไฟล์เก็บถาวร

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

ดังนั้นเราจึงสามารถทำสิ่งเดียวกันได้ด้วยตนเอง

ขั้นตอนที่ 1:สร้างโคลนของเครื่องเสมือนของคุณ

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

เหตุผลที่คุณอาจต้องการคัดลอกเฉพาะสถานะล่าสุดก็เนื่องจากทำให้การจัดการเครื่องจักรง่ายขึ้น และลดปริมาณข้อมูลที่จำเป็นสำหรับการถ่ายโอน หากคุณกำลังส่งออกผ่านเครือข่าย สิ่งนี้อาจสร้างความแตกต่างอย่างมาก (แม้แต่บน LAN)

การแก้ไขข้อผิดพลาดการนำเข้า VirtualBox OVA:แก้ไข E_INVALIDARG 0x80070057

ขั้นตอนที่ 2:คัดลอกโฟลเดอร์เครื่องเสมือนทั้งหมดไปยังโฮสต์ที่สอง

โครงสร้างของโฟลเดอร์เครื่องเสมือน VirtualBox ใดๆ จะเป็นดังนี้:ไดเร็กทอรีชื่อ Logs และ Snapshots, ดิสก์เสมือนอย่างน้อยหนึ่งดิสก์ (โดยปกติจะเป็นรูปแบบ .vdi) และไฟล์การกำหนดค่าที่มีส่วนต่อท้าย .vbox (ส่วนขยาย) รวมถึงอาจเป็นไฟล์การกำหนดค่าที่สองที่มีส่วนต่อท้าย .vbox-prev (หากคุณทำการเปลี่ยนแปลง)

ไฟล์ vbox เป็นไฟล์ Manifest XML พร้อมด้วยการประกาศทุกประเภทที่คุณเห็นใน GUI คุณไม่ควรแก้ไขไฟล์นี้ในขณะที่เครื่องใดๆ กำลังทำงานอยู่ แต่คุณสามารถทำได้อย่างปลอดภัยสำหรับเครื่องใดๆ ที่อยู่ในสถานะออฟไลน์ การเปลี่ยนแปลงจะมีผลในครั้งถัดไปที่คุณเปิดเครื่องนั้น ตัวอย่างเช่น ใต้สื่อ คุณจะเห็นส่วนของ HardDisks ที่แสดงรายการดิสก์และสแน็ปช็อตทั้งหมด:

...
<ฮาร์ดดิสก์>
  <ฮาร์ดดิสก์ uuid="{dfcda294-6feb-4ef8-8bc8-e67ad57e2cc6}"
    ตำแหน่ง ="Kubuntu-24.04.vdi"
    รูปแบบ ="VDI"
    ประเภท ="ปกติ">
    <ฮาร์ดดิสก์ uuid="{f062fe0b-578c-4461-9a10-8d65d28347ac}"
      ตำแหน่ง ="ภาพรวม/{f062fe0b-578c-4461-9a10-8d65d28347ac}.vdi"
      รูปแบบ ="VDI">
    <ฮาร์ดดิสก์ uuid="{f942b89a-49ff-40fa-8d62-e6fdd8a205d9}"
      ตำแหน่ง ="ภาพรวม/{f942b89a-49ff-40fa-8d62-e6fdd8a205d9}.vdi"
      รูปแบบ ="VDI"/>
    
  

...

การประกาศนี้แจ้งให้เราทราบว่าเครื่องใดเครื่องหนึ่งใช้ฮาร์ดดิสก์ชื่อ Kubuntu-24.04.vdi และมีสแนปช็อตสองภาพที่เกี่ยวข้องกัน คุณเข้าใจแนวคิดนี้แล้ว

เอาล่ะ คัดลอกข้อมูลทั้งหมดนี้ ทั้งโฟลเดอร์ ไปยังโฮสต์ที่สองของคุณ

ขั้นตอนที่ 3:ตรวจสอบเส้นทาง

ก่อนที่คุณจะ "นำเข้า" เครื่องเสมือน คุณควรเปิดไฟล์ vbox ในโปรแกรมแก้ไขข้อความ และมองหาเส้นทางที่ "ตลก" ซึ่งจะรวมถึงไฟล์ ISO ใดๆ ที่ติดตั้ง, พาธของแขกที่ใช้ร่วมกันหรือสิ่งที่คล้ายกัน, สิ่งใดก็ตามที่ฮาร์ดโค้ดไปยังระบบแรกและอาจไม่มีอยู่ในระบบที่สอง ข้อผิดพลาดดังกล่าวจะทำให้การเพิ่มเครื่องเสมือนใหม่ล้มเหลว สิ่งนี้จะไม่ชัดเจนเมื่อคุณใช้ไฟล์เก็บถาวร OVA แต่คุณจะมองเห็นและควบคุมได้อย่างสมบูรณ์เมื่อดำเนินการด้วยตนเอง

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

<โฟลเดอร์ที่ใช้ร่วมกัน>
  <ชื่อโฟลเดอร์ที่ใช้ร่วมกัน ="SHARED_FOLDER"
    hostPath="G:\เครื่องเสมือน\โฟลเดอร์ที่ใช้ร่วมกัน"
    เขียนได้ ="จริง"
    ออโต้เมาท์ ="จริง"
    autoMountPoint ="SHPATH"/>

ในที่นี้ ฉันใช้ตัวอย่างเส้นทางที่ตั้งค่าไว้ในไดรฟ์ G:(Windows) แต่เส้นทางดังกล่าวอาจไม่อยู่ในระบบที่สองของคุณ หรืออาจถูกตั้งค่าภายใต้ตัวอักษรอื่น ดังนั้นคุณจะต้องเปลี่ยนสิ่งนี้เพื่อพูดว่า:

hostPath="P:\เส้นทางที่แตกต่างกัน\โฟลเดอร์ที่ใช้ร่วมกัน"

และหากระบบที่สองของคุณคือ Linux ก็อาจจำเป็นต้องเป็นอย่างอื่นทั้งหมด:

hostPath="/home/dedoimedo/Shared-folder"

นอกเหนือจากเส้นทางฮาร์ดโค้ดเหล่านี้ คุณยังสามารถใช้โอกาสนี้เพื่อปรับการตั้งค่าอื่นๆ รวมถึงการจัดสรรหน่วยความจำ จำนวนคอร์ CPU การใช้อะแดปเตอร์กราฟิกเฉพาะ และอื่นๆ แต่วิธีที่ดีที่สุดคือทำการเปลี่ยนแปลงทีละรายการ ลองเพิ่มเครื่องเสมือน และดูว่ามีข้อผิดพลาดเกิดขึ้นหรือไม่

เมื่อคุณแก้ไขไฟล์ vbox ตามต้องการแล้ว เพียงดับเบิลคลิก ด้วยการติดตั้งเริ่มต้น ทั้งใน Windows และ Linux สตริงและประเภทไฟล์เฉพาะนี้จะเชื่อมโยงกับไฮเปอร์ไวเซอร์ VirtualBox หากการกำหนดค่า XML ถูกต้อง เครื่องเสมือนจะแสดงในรายการของคุณ เสร็จแล้ว

ขั้นตอนที่ 3:แนวทางทางเลือก

หากคุณรู้สึกไม่สะดวกใจในการแก้ไขไฟล์ XML คุณสามารถดำเนินการดังต่อไปนี้:

  • โคลนเครื่องเสมือน
  • เปิดการตั้งค่า (ผ่าน VirtualBox GUI) ลบเส้นทางที่ฮาร์ดโค้ด เช่น ไฟล์ ISO, โฟลเดอร์ที่แชร์ ฯลฯ
  • คัดลอกเครื่องเสมือนไปยังปลายทางใหม่
  • ดับเบิลคลิกที่ไฟล์ vbox เพื่อเพิ่มลงในไฮเปอร์ไวเซอร์
  • เปิดการตั้งค่าอีกครั้ง และเพิ่มเส้นทางใหม่ตามที่ควรจะเป็นบนอุปกรณ์เครื่องที่สอง
  • เปิดเครื่องเสมือนและทำงานของคุณ

คำเตือนและข้อจำกัดด้านลิขสิทธิ์ที่เป็นไปได้

ดังที่คุณอาจสังเกตเห็นข้างต้น ฉันใช้เครื่องเสมือน Linux สำหรับกระบวนการคัดลอก/ย้ายข้อมูล กล่าวโดยเฉพาะเจาะจงคือ Linux และ Kubuntu เนื่องจากการกระจาย Linux นี้ไม่มีข้อจำกัดในการใช้งาน ทั้งจำนวนระบบ หรือจำนวน "ใบอนุญาต"

หากคุณทำเช่นนั้นด้วยระบบปฏิบัติการที่เป็นกรรมสิทธิ์ เช่น Windows คุณอาจปิดการใช้งานใบอนุญาตของคุณเนื่องจากการเปลี่ยนแปลงฮาร์ดแวร์ หรือคุณอาจต้องซื้อใหม่ หากคุณใช้โปรแกรม (แบบชำระเงิน) บางตัวที่ได้รับอนุญาตให้ใช้งานกับโฮสต์เดียวหรืออินสแตนซ์ที่ทำงานอยู่ตัวเดียว คุณจะต้องคำนึงถึงสิ่งนี้ด้วย เนื่องจากการสร้างสำเนาใหม่ของเครื่องเสมือนอาจทำให้เกิดปัญหากับใบอนุญาตของคุณหรือเงื่อนไขการใช้งานสำหรับซอฟต์แวร์ดังกล่าว

บทสรุป

หากขั้นตอนแบบอัตโนมัติที่ห่อหุ้มอย่างดีไม่ได้ผลสำหรับคุณ วิธีการแบบแมนนวลอาจทำได้ ฉันได้ทดสอบวิธีการคัดลอกโฟลเดอร์ + การเปลี่ยนแปลง XML หลายครั้งด้วยเครื่องเสมือนหลายเครื่องจากและไปยังระบบปฏิบัติการ Windows และ Linux ผลลัพธ์ที่ได้ก็ยอดเยี่ยม แน่นอนว่าคุณอาจต้องปรับการตั้งค่าสักหนึ่งหรือสองอย่าง แต่แล้วคุณก็ดูดีสุดๆ ภายในขอบเขตของข้อจำกัดสิทธิ์การใช้งานซอฟต์แวร์ของคุณ นั่นก็คือ

หวังว่าบทช่วยสอนนี้จะมีประโยชน์ การดีบักรหัสข้อผิดพลาดเฉพาะอาจเป็นเรื่องที่น่าเบื่อ เนื่องจากข้อผิดพลาดในการนำเข้ามักจะเกิดข้อผิดพลาดดังกล่าว ในขณะที่วิธีแก้ปัญหาเฉพาะนั้นมีมากมายและหลากหลาย ขั้นตอนการคัดลอกด้วยตนเองนั้นมีประสิทธิภาพ แต่คุณต้องคำนึงถึงบางสิ่ง ซึ่งส่วนใหญ่เป็นเส้นทางแบบฮาร์ดโค้ดในการกำหนดค่าของคุณ คุณสามารถแก้ไขสิ่งเหล่านี้ก่อนหรือหลังการคัดลอก เพื่อให้แน่ใจว่าสามารถเพิ่มเครื่องเสมือนใหม่ได้อย่างราบรื่น เอาล่ะคุณไป การจำลองเสมือนมีความสุข

ไชโย