私はVirtualBox仮想マシンにUbuntuをインストールしたいだけです。それに対してVirtualBoxはエラーを表示しました:
VT-xが有効になっていません
Google で調べたところ、Windows 8.1 で Hyper-V が有効になっていることが原因である可能性があることがわかりました。
私はそれを無効にしたら、問題は解決しました。その後、Hyper-V について読み始めたところ、これが Microsoft の仮想化のための非常に優れたツールであることがわかりました。
仮想化ツールが仮想化を無効にするのは少し奇妙に思えます。
- Hyper-V は実際何のためにあるのでしょうか?
- 無効にした場合、どのような結果になりますか?
- なぜVirtualBoxでは動作しなかったのでしょうか?
答え1
仮想化ツールが仮想化を無効にするのは少し奇妙に思えます。
これを理解するには、仮想化が使用されているときにシステムで何が起こっているかを知る必要があります。
仮想化が有効になっていない場合、システムは次のように動作します。
[ ハードウェア ] -> [ オペレーティングシステム ] -> [ アプリケーション ] -> [ あなた ]
Hyper-V を使用する場合、そこには追加のレイヤーがあります。
[ ハードウェア ] -> [ 仮想化ハイパーバイザー ] -> [ 複数の OS のうちの 1 つ ] -> [ その OS のアプリケーション ] -> [ あなた ]
Hyper-Vを有効にすると、違いに気付かなくてもハイパーバイザーがそこに存在します。ハイパーバイザーがハードウェアの真上にあることに注意してくださいHyper-V を使用します。VMWare サーバー製品も同様に動作します。
したがって、Hyper-V が有効になっている場合、現時点で 1 つの「ゲスト」OS (Hyper-V 以前の OS) のみを実行している場合でも、ハイパーバイザー「内」にいることになります。
x86 ハードウェアは、「ネスト」ハイパーバイザーをサポートしていません。ハードウェア仮想化が有効になっている場合、これを設定する VMXON 命令によって「VM 終了」が発生します。したがって、ハイパーバイザーがアクティブなときに、そのハイパーバイザー内の OS が仮想化を設定しようとすると、通常、ハイパーバイザーはゲスト OS に仮想化がサポートされていないことを通知するだけです。
ゲスト OS が仮想化機能を使用できるようにしたい場合は、ハイパーバイザーがハードウェア仮想化を「エミュレート」することも可能ですが、ご覧のとおり、Hyper-V はこれを行わないことを選択しました (いずれにしても、実行するのは複雑です)。
さて、VMWare Player または Virtual PC を次のように使用している場合:
[ ハードウェア ] -> [ オペレーティングシステム ] -> [ OS が動作する VM アプリケーション ] -> [ あなた ]
VMWare プレーヤーは複数のインスタンスを正常に維持できるため (多数のドライバーをインストールします)、複数の VMWare プレーヤーを問題なく実行できます。ただし、VMWare プレーヤーと Virtual PC を実行しようとしたかどうかはわかりません。おそらく機能しないでしょう。
答え2
Hyper-V
は、Microsoft のハイパーバイザー バージョンです (VirtualBox など)。これは、VT-x
x86 プラットフォームでの仮想化のための Intel のテクノロジを表します。一部のマザーボードでは、BIOS 設定でこれを有効にできます。BIOS でこれを有効にしないと、仮想環境は基盤となるハードウェアを通じて高速化されません。
無効化に関する質問にお答えするにはHyper-V
、VirtualBoxがにアクセスできるようにしますVT-x
。このフォーラムを参照してくださいhttp://social.technet.microsoft.com/Forums/windows/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum=w8itprogeneral
Windows 8 Pro に Hyper-V がインストールされている場合、ハイパーバイザーはホスト OS の下で常に実行されており、安定性のために VT ハードウェアを制御できるのは一度に 1 つだけです。ハイパーバイザーは、VT ハードウェアへの他のすべての呼び出しをブロックします。
MS Technet からいくつかのポイントを紹介します。個人的には、VirtualBox の構成レイアウトが好きなので、Hyper-V は使用しません。ヘッドレス VM が必要な場合は、インスタンスを Proxmox Cluster に投入します。
Hyper-V はハードウェア上で直接実行されるヘッドレス仮想化です。一方、Virtualbox は OS を必要とし、デスクトップ上で実行される仮想化アプリケーションです。
VirtualBox は、特にサウンド、USB、および非常に幅広い OS のサポートが必要な場合に、VM を直接操作するために使用します。
Hyper-V は、余分なデスクトップ ハードウェア (USB など) をあまり必要としないサーバーをホストするように設計されています。Hyper-V は、多くのシナリオで VirtualBox よりも高速です。クラスタリング、NIC チーミング、ライブ マイグレーションなど、サーバー製品に期待される機能が得られます。
答え3
Hyper-V は、上位 OS の VT-x を実際にブロックします。しかし、私が助けられたのは、説明されているように、必要に応じて Hyper-V をオン/オフにすることです (インストール/アンインストールは、かなり難しいです)。ここ以下のコマンドの助けを借りて
bcdedit /set hypervisorlaunchtype off
bcdedit /set hypervisorlaunchtype auto start
これで、必要に応じて Heper-V と VirtualBox を使用できるようになります (もちろん、一度ではなく、「1 回の再起動」手順で)。