เหตุใด VirtualBox หรือ VMware จึงไม่สามารถทำงานด้วยเปิดใช้งาน Hyper-V บน Windows 10


57

ฉันใช้ Windows 10 Pro 64 บิตโดยเปิดใช้งานเทคโนโลยีการจำลองเสมือน Hyper-V และ Intel VT-x เมื่อฉันพยายามเรียกใช้ VirtualBox 64 บิต Windows จะเข้าสู่ BSOD เมื่อฉันรัน VMware จะแสดงข้อผิดพลาด

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

นี่คือข้อค้นพบของฉัน ไซต์ส่วนใหญ่แนะนำให้เพิ่มรายการบูตด้วย BCDedit หรือปิดการใช้งาน Hyper-V ด้วย BCDedit เช่นการสร้าง "ไม่มีไฮเปอร์ไวเซอร์" รายการบูต , Run Hyper-V และ VirtualBox ในเครื่องเดียวกัน แต่ฉันสามารถรันQEMUด้วย Hyper-Vได้ Qemu ไม่แสดงข้อผิดพลาดใด ๆ กับ Hyper-V และทำงานได้อย่างราบรื่น


2
Hyper-V ไม่รองรับการจำลองเสมือนแบบซ้อน (ด้วยการเร่งด้วยฮาร์ดแวร์) อย่างไรก็ตามมันจะไม่ผิดพลาดภายใต้สถานการณ์ปกติ VirtualBox จะบ่นว่ามันไม่สามารถเรียกใช้แขก x64 ได้และนั่นเป็นเหตุผล ดังนั้นบางอย่างผิดปกติเช่นไดรเวอร์อุปกรณ์ชำรุดหรืออะไรก็ตาม
Daniel B

ฉันเห็นมันผิดพลาดแน่นอน อย่างไรก็ตามอีกครั้ง: สิ่งนี้ไม่ปกติ ความผิดพลาดไม่เคยปกติ ดูเหมือนว่านี่เป็นข้อบกพร่องใน Hyper-V คุณควรติดต่อ Microsoft เกี่ยวกับเรื่องนี้
Daniel B

น่าจะชี้ให้เห็นว่า QEMU ไม่ใช่ไฮเปอร์ไวเซอร์ Hyper-V จะสนับสนุนการทำงานแบบเสมือนที่ซ้อนกัน
Ramhound

คำตอบ:


66

VirtualBox และ VMware Workstation (และ VMware Player) คือ "ระดับไฮเปอร์ไวเซอร์ระดับ 2" Hyper-V และ VMware ESXi คือ "ระดับ 1 hypervisors"

ข้อแตกต่างที่สำคัญคือไฮเปอร์ไวเซอร์ระดับ 2 คือแอปพลิเคชันที่ทำงานภายในระบบปฏิบัติการที่มีอยู่ในขณะที่และไฮเปอร์ไวเซอร์ระดับ 1 คือระบบปฏิบัติการของตัวเอง

ซึ่งหมายความว่าเมื่อคุณเปิดใช้งาน Hyper-V Windows 10 "โฮสต์" ของคุณจะกลายเป็นเครื่องเสมือน เครื่องพิเศษ แต่อย่างไรก็ตามเครื่องเสมือน

ดังนั้นคำถามของคุณจะเหมาะสมกว่า: "ทำไม VirtualBox และ VMware Workstation ไม่ทำงานภายในเครื่องเสมือน Hyper-V" หนึ่งสามารถตอบเพราะในฐานะ VM คำสั่ง Intel VT-X ไม่สามารถเข้าถึงได้จากเครื่องเสมือนของคุณอีกต่อไปเฉพาะโฮสต์เท่านั้นที่สามารถเข้าถึงได้

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

การจำลองเป็นกระบวนการเรียกใช้เครื่องใด ๆ ภายในระบบปฏิบัติการที่รันอยู่ไม่มีข้อ จำกัด ของแพลตฟอร์มและเป็นสาเหตุที่ QEMU สามารถเรียกใช้เครื่อง ARM บนแพลตฟอร์ม amd64

หมายเหตุ: QEMU มี 2 โหมดการทำงาน:

  • มันสามารถทำงานเป็นอีมูเลเตอร์ได้นี่คือโหมดนี้อธิบายไว้ข้างต้น
  • มันสามารถทำงานเป็นซอฟต์แวร์การจำลองเสมือนได้ด้วยความช่วยเหลือของ KVM หากสถาปัตยกรรมของผู้เข้าร่วมนั้นเข้ากันได้กับโฮสต์และถ้าคำสั่ง VT นั้นแน่นอน

1
การจำลองเสมือนสร้างระบบ "ปลอม" ทั้งหมดยกเว้นตัวประมวลผลที่ไฮเปอร์ไวเซอร์จะ จำกัด จำนวนเวลาตัวประมวลผลที่ vm สามารถใช้ได้เท่านั้น ดังนั้นคุณสามารถสร้างแขนเสมือนบนโฮสต์แขน, x86 บนโฮสต์ x86 / amd64, amd64 บนโฮสต์ amd64 ฯลฯ ... อีมูเลเตอร์จะคอมไพล์คำสั่งแต่ละคำสั่งสำหรับไบนารีที่รวบรวมสำหรับแพลตฟอร์มเฉพาะเพื่อทำงานบนแพลตฟอร์มอื่น QEMU เป็นของตระกูลเดียวกันกับคอนโซลอีมูเลเตอร์ตัวอย่างเช่น (psx, dolphin, virtualboy, project64, MAME ... )
Veovis

การจำลองเสมือน (ใช่ไม่ใช่การจำลอง) มีมานานก่อนการจำลองเสมือนที่มีฮาร์ดแวร์ช่วย สามารถซ้อนกันได้ตามต้องการ
Daniel B

2
ทำไม VirtualBox ไม่สามารถใช้ประโยชน์จาก "Nested VT-x / AMD-V" นี่เป็นข้อ จำกัด ของฮาร์ดแวร์หรือไม่? ของ Hyper-V?
user643011

21

เริ่มต้นจาก Windows จับกลุ่ม 4 สร้าง QEMU จะสามารถที่จะทำงานภายใต้ Hyper-V โดยการจ้างของ Windows API

ตัวเร่งความเร็วแพลตฟอร์ม Windows Hypervisor (WHPX) กำลังถูกรวมเข้ากับแพตช์ QEMU จะถูกส่งเพื่อรวมเข้าด้วยกัน

API แพลตฟอร์ม Windows Hypervisor จะรวมอยู่ในการสร้าง Redstone 4

การสนับสนุนการทดลองสำหรับ WHPX นั้นรวมอยู่ในQEMU 2.12

ปรับปรุง: Virtualbox 6.0 เพิ่มการสนับสนุนสำหรับ WHPX Virtualbox 6.0 การเปลี่ยนแปลง

อัปเดต 2: VMWare จะเพิ่มการรองรับ WHPX ใน VMWare Workstation และฟิวชั่นรุ่นต่อไป VMware Workstation และ Hyper-V - ทำงานร่วมกัน


3
ในทางทฤษฎี API นี้สามารถใช้กับ VMWare และ VirtualBox ได้เช่นกัน
Ramhound

@Ramhound สามารถใช้กับ VirtualBox หรือ VMware ได้หรือไม่ บทความนั้นพูดถึง qemu เท่านั้น
Biswapriyo

@Biswapriyo ฉันพบว่า VMWare และ VirtualBox เป็นไปได้โดยตรงจากเอกสาร อย่างไรก็ตาม VMWare และ VirtualBox จะต้องทำการเปลี่ยนแปลงที่จำเป็นกับแอปพลิเคชันของพวกเขา
Ramhound

คุณช่วยอธิบายได้อย่างไรว่าสิ่งนี้แตกต่างจาก Nested VT-x / AMD-V หรือไม่?
user643011

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