web-dev-qa-db-ja.com

VirtualBoxまたはVMwareがHyper-V対応のWindows 10で動作できない理由

私は、Hyper-V対応のWindows 10 Pro 64bitおよびIntel VT-x仮想化テクノロジを実行しています。しかし、私がVirtualBox 64bitを実行しようとすると、WindowsはBSODになります。 VMwareを実行するとエラーが表示されます。

私の質問は、VirtualBoxとVMwareがHyper-Vを有効にした状態で実行できない理由です。ハードウェアとソフトウェアを含むあなたが持っているすべての詳細で説明してください。このエラーの内部的な原因を知りたいです。

これが私の発見です。ほとんどのサイトでは、BCDeditでブートエントリを追加するか、BCDeditでHyper-Vを無効にすることを推奨しています。例えば 「ハイパーバイザーなし」のブートエントリを作成する同じマシンでHyper-VとVirtualBoxを実行する しかし、IはHyper-VQEMU を実行できます。 QemuはHyper-Vでエラーを表示せず、スムーズに動作します。

47
Biswapriyo

VirtualBoxとVMware Workstation(またはVMware Player)は、ハイパーバイザーレベル2と呼ばれています。Hyper-VまたはVMware ESXiは、ハイパーバイザーレベル1です。2つの種類のハイパーバイザーの主な違いの1つはアプリケーションです。後者はOS自体ですが、既存のOSです。

つまり、Hyper-Vを有効にすると、Windows 10の「ホスト」が仮想マシンになりました。特別なものですが、それでも仮想マシンです。

そのため、質問は「VirtualBoxとVMware WorkstationがHyper-V仮想マシン内で機能しない理由」に変更される可能性があります。 VMとして、Intel VT-X命令はあなたの仮想マシンからアクセスできなくなり、ホストだけがそれを持つことができるので、人は答えることができます。

QEMUは、仮想化ではなくエミュレーションを行わないために機能します。エミュレーションはまったく異なり、QEMUが非常に遅い理由を説明しています。仮想化は、完全に隔離されたマシンを別のマシンの中で実行するプロセスですが、プロセッサを利用しています。これには、仮想マシンとホストが命令互換であることが必要です。エミュレーションは実行中のOS内で任意のマシンを実行するためのプロセスです。プラットフォームの制限はありません。それがQEMUがAMD64プラットフォームでARMマシンを実行できる理由です。

注:QEMUには2つの動作モードがあります。

  • それはエミュレータとして働くことができます、これは私が上で説明したこのモードです
  • ゲストアーキテクチャがホストと互換性があり、VT命令がもちろん存在する場合は、KVMを使用して仮想化ソフトウェアとして機能できます。
55
Veovis

Windows Redstone 4ビルド以降、QEMUは WindowsハイパーバイザープラットフォームAPI を使用することでHyper-Vの下で実行できるようになります。

Windowsハイパーバイザープラットフォームアクセラレータ(WHPX)はQEMU に統合されつつあります

WindowsハイパーバイザープラットフォームAPIは、 Redstone 4ビルド に含まれる予定です。

WHPXの実験的サポートは QEMU 2.12 に含まれています

更新:Virtualbox 6.0はWHPX Virtualbox 6.0チェンジログ のサポートを追加した。

19
nkef