Tại sao VirtualBox hoặc VMware không thể chạy với Hyper-V được bật trên Windows 10


58

Tôi đang chạy Windows 10 Pro 64 bit với công nghệ ảo hóa Hyper-V và Intel VT-x được kích hoạt. Khi tôi cố chạy VirtualBox 64bit, Windows sẽ vào BSOD. Khi tôi chạy VMware, nó hiển thị một lỗi.

Tại sao VirtualBox và VMware không chạy được với Hyper-V? Vui lòng giải thích với tất cả các chi tiết bạn có bao gồm phần cứng và phần mềm. Tôi muốn biết nguyên nhân nội bộ của lỗi này.

Dưới đây là một số phát hiện của tôi. Hầu hết các trang web đề nghị thêm một mục khởi động với BCDedit hoặc để tắt Hyper-V với BCDedit. ví dụ: Tạo mục nhập khởi động "không có trình ảo hóa" , Chạy Hyper-V và VirtualBox trên cùng một máy . Nhưng tôi có thể chạy QEMU với Hyper-V . Qemu không hiển thị bất kỳ lỗi nào với Hyper-V và chạy trơn tru.


2
Hyper-V không hỗ trợ ảo hóa lồng nhau (với khả năng tăng tốc phần cứng). Tuy nhiên, nó sẽ không sụp đổ trong trường hợp bình thường. VirtualBox sẽ phàn nàn rằng nó không thể chạy x64 khách và đó là nó. Vì vậy, một cái gì đó khác là sai như trình điều khiển thiết bị trục trặc hoặc bất cứ điều gì.
Daniel B

Tôi thấy, nó thực sự sụp đổ. Tuy nhiên, một lần nữa: Điều này không bình thường. Một vụ tai nạn là không bao giờ bình thường. Có vẻ như đây là một lỗi trong Hyper-V. Bạn có lẽ nên liên lạc với Microsoft về nó.
Daniel B

Đáng để chỉ ra rằng QEMU không phải là một siêu giám sát. Hyper-V không hỗ trợ ảo hóa lồng nhau.
Ramhound

Câu trả lời:


67

VirtualBox và VMware Workstation (và VMware Player) là "trình ảo hóa cấp 2". Hyper-V và VMware ESXi là "trình ảo hóa cấp 1".

Sự khác biệt chính là một trình ảo hóa cấp 2 là một ứng dụng chạy bên trong HĐH hiện có, trong khi đó, trình ảo hóa cấp 1 là chính HĐH.

Điều này có nghĩa là khi bạn kích hoạt Hyper-V, "máy chủ" Windows 10 của bạn đã trở thành một máy ảo. Một cái đặc biệt, nhưng dù sao cũng là một máy ảo.

Vì vậy, câu hỏi của bạn sẽ thông minh hơn là: "Tại sao VirtualBox và VMware Workstation không hoạt động bên trong máy ảo Hyper-V?" Người ta có thể trả lời vì là một VM, lệnh Intel VT-X không còn có thể truy cập được từ máy ảo của bạn, chỉ có máy chủ mới có quyền truy cập vào nó.

QEMU hoạt động vì nó không thực hiện ảo hóa mà là mô phỏng, điều này hoàn toàn khác biệt và giải thích tại sao QEMU lại chậm một cách đau đớn. Ảo hóa là quá trình để chạy một máy bị cô lập hoàn toàn bên trong một máy khác, nhưng với sự trợ giúp của bộ xử lý. Điều này đòi hỏi máy ảo và máy chủ phải tương thích hướng dẫn.

Thi đua là quá trình để chạy bất kỳ máy nào trong HĐH đang chạy, không có giới hạn nền tảng và đó là lý do tại sao QEMU có thể chạy máy ARM trên nền tảng amd64.

Lưu ý: QEMU có 2 chế độ hoạt động:

  • Nó có thể hoạt động như một trình giả lập, đây là chế độ được giải thích ở trên
  • nó có thể hoạt động như một phần mềm ảo hóa với sự trợ giúp của KVM nếu kiến ​​trúc khách tương thích với máy chủ và nếu tất cả chỉ dẫn VT có mặt.

1
Việc ảo hóa tạo ra cả một hệ thống "giả mạo", ngoại trừ bộ xử lý mà trình ảo hóa sẽ chỉ giới hạn thời gian xử lý mà vm có thể sử dụng. Vì vậy, bạn chỉ có thể ảo hóa arm trên máy chủ arm, x86 trên máy chủ x86 / amd64, amd64 trên máy chủ amd64, v.v ... Trình giả lập sẽ biên dịch lại mỗi lệnh cho một nhị phân được biên dịch cho một nền tảng cụ thể để chạy trên nền tảng khác. QEMU thuộc cùng một gia đình với các trình giả lập giao diện điều khiển chẳng hạn (psx, cá heo, virtualboy, project64, MAME ...)
Veovis

Ảo hóa (có, không phải mô phỏng) đã có sẵn từ lâu trước khi ảo hóa hỗ trợ phần cứng có sẵn. Nó có thể được lồng như mong muốn.
Daniel B

2
Tại sao VirtualBox không thể tận dụng "Nested VT-x / AMD-V"? Đây có phải là một hạn chế của phần cứng? Của Hyper-V?
dùng643011

21

Bắt đầu từ bản dựng Windows Redstone 4, QEMU sẽ có thể chạy trong Hyper-V bằng cách sử dụng API nền tảng Windows Hypervisor .

Trình tăng tốc nền tảng Windows Hypervisor (WHPX) đang được tích hợp vào các bản vá QEMU được gửi để hợp nhất .

API nền tảng Windows Hypervisor sẽ được bao gồm trong bản dựng Redstone 4

Hỗ trợ thử nghiệm cho WHPX được bao gồm trong QEMU 2.12

Cập nhật: Virtualbox 6.0 đã thêm hỗ trợ cho WHPX Virtualbox 6.0 Changelog .

Cập nhật 2: VMWare sẽ thêm hỗ trợ cho WHPX trong phiên bản sắp tới của VMWare Workstation và fusion. VMware Workstation và Hyper-V - Làm việc cùng nhau


3
Về lý thuyết, API này cũng có thể được VMWare và VirtualBox sử dụng.
Ramhound

@Ramhound Nó có thể được thực hiện với VirtualBox hoặc VMware không? Bài báo đó chỉ đề cập đến qemu.
Biswapriyo

@Biswapriyo Tôi xác định rằng VMWare và VirtualBox có thể trực tiếp từ tài liệu. Tuy nhiên, VMWare và VirtualBox sẽ phải thực hiện các thay đổi cần thiết cho ứng dụng của họ
Ramhound

Bạn có thể giải thích điều này khác với Nested VT-x / AMD-V như thế nào không?
user643011

Hỗ trợ WHPX của Virtualbox 6.0 có chất lượng rất alpha. Nó hầu như không hoạt động ngay bây giờ.
user643011
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.