連載
» 2021年07月29日 05時00分 公開

Hyper-Vとサードパーティー製仮想マシン環境を共存させるWindows 10 Hyper-V入門(1/2 ページ)

Hyper-Vだけでなく、場合によってはサードパーティー製の仮想マシン環境ソフトウェアを使わなければならないこともある。そのような場合、Hyper-Vを無効化せずに、サードパーティー製の仮想マシン環境ソフトウェアを使う方法について解説する。

[塩田紳二,著]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

Hyper-Vとサードパーティー製の仮想マシン環境ソフトウェアを共存させる Hyper-Vとサードパーティー製の仮想マシン環境ソフトウェアを共存させる
「Windowsハイパーバイザープラットフォーム」を利用すると、Hyper-Vとサードパーティー製の仮想マシン環境ソフトウェアを共存させることができる。

 Windows OS用には、Hyper-V以外にもさまざまな仮想マシン環境ソフトウェアが提供されている。自分で仮想マシンを作成するのであれば、Hyper-Vだけあれば十分という意見もあるが、仮想マシン環境ソフトウェアごとに仮想マシンイメージの提供方式が違っており、他にはない仮想マシンイメージが配布されていることもある。そのため、場合によっては、他の仮想マシン環境ソフトウェアを動作させたいこともある。

 ただ、既にHyper-Vを運用している環境では、他の仮想マシン環境ソフトウェアを動作させるのに注意が必要だ。そこで、ここではそのための方法を解説する。

仮想マシン環境ソフトウェアとは

 仮想マシンは、CPUが持つIntel VTやAMD SVM(AMD-Vと表記されることもある)を使って「仮想マシン」環境を作り、この中で「ゲストオペレーティングシステム(ゲストOS)」などを動作させるものだ。この「仮想マシン管理ソフトウェア」には、大きく2つのタイプがある。

 1つは「Hyper-V」のようにオペレーティングシステムの下で動作する「本当」のハイパーバイザー(Type 1 HypervisorやBear Metal Hypervisorと呼ばれることがある)。もう1つは、OS上で動作し、仮想マシン環境を作り出すもので、OS(スーパバイザー)の上位にあるという本来の意味でのハイパーバイザーではないが、Type 2 Hypervisorと呼ばれることがある。

仮想マシン環境ソフトウェアの違い 仮想マシン環境ソフトウェアの違い
仮想マシン環境ソフトウェアには、大きくType 1 HypervisorとType 2 Hypervisorの2種類がある。このうちHyper-Vは、Type 1に分類される。

 主な仮想マシン環境ソフトウェアにで、それには、下表のようなものがある。なお、この他にも仮想マシン環境ソフトウェアはあるが、この記事では、Hyper-Vとの共存を考えるものであるため、Windows 10で動作しない仮想マシン環境ソフトウェア(Parallels Desktop for Macなど)については省略してある。

メーカー 名称 Windowsハイパーバイザープラットフォーム対応 備考
VMware VMware Workstation Pro Ver.15.5以降 Windows 10 May 2020 Update以降で対応
VMware VMware Workstation Player Ver.15.5以降 Windows 10 May 2020 Update以降で対応
Oracle VirtualBox Ver.4.0以降 Windows 10 October 2018 Update以降で対応
主な仮想マシン環境ソフトウェア

 また、Windows 10上でAndroidのソフトウェアを動作させるAndroidエミュレーターでも仮想マシン環境ソフトウェアが利用されている。これは、アーキテクチャの異なるArm CPUのコードで記述されたソフトウェアをエミュレーションして実行するよりも、x86 CPU用にコンパイルしたAndroidそのものを仮想マシン環境で動作させる方が効率的だからだ。

 また、Googleから提供されるAndroidの仮想マシンイメージは、Androidエミュレーター用に限られており、他の仮想マシン環境ソフトウェアでは簡単に動かすことができない。ここではAndroidの開発に関連するAndroidエミュレーターの仮想マシンについても範疇(はんちゅう)に含めることにする。

開発元 名称(リンク先はダウンロードページ) Windowsハイパーバイザープラットフォーム対応 備考
Intel HAXM(Hardware Accelerated Execution Manager) × Intel CPU専用
Google Android Emulator Hypervisor Driver for AMD Processors × AMD CPU専用
Microsoft Windowsハイパーバイザープラットフォーム Hyper-Vと共存可能
Windows 10上のAndroidエミュレーターが仮想マシン実行に利用するハイパーバイザー

Hyper-Vと他の仮想マシン環境ソフトウェアを共存させる

 基本的な原理は、どの仮想マシン環境ソフトウェアも同じだ。Windows 10では、仮想マシン環境を管理する「ハイパーバイザー」は1つしか動作できず、Hyper-Vが想定されている。このため、かつてはHyper-V以外の仮想マシン環境ソフトウェアを動作させるためには、Hyper-Vをアンインストールするなど面倒な作業が必要だった。

 しかし、Windows 10 April 2018 Update(バージョン1803)からは、「Windowsハイパーバイザープラットフォーム」という機能が提供されるようになった。これは、Hyper-Vの仮想マシン管理機能をAPIとして公開するもので、Type 2 Hypervisorである仮想マシン環境ソフトウェアがこれに対応することで、Hyper-Vとの共存が可能になるものだ。この場合、サードパーティー製の仮想マシン環境ソフトウェアは、CPUの仮想マシン支援機能をHyper-V(正確にはWindowsハイパーバイザー)を経由して利用することになる。

 「Windowsハイパーバイザープラットフォーム」でHyper-Vと共存可能になるものは、基本的に前述のType 2 Hypervisorだけだ。

 前表で紹介した仮想マシン環境ソフトウェアのうち、Hyper-Vと共存ができないものは、デバイスドライバとしてWindows 10に組み込まれて動作するIntel HAXMやAndroid Emulator Hypervisor Driver for AMD Processorsなどがある。

 Hyper-Vと共存できない仮想マシン環境ソフトウェアを利用する場合、Hyper-Vの動作を一時的に止める必要がある(止め方は後述)。また、Type 2 Hypervisorとなる仮想マシン環境ソフトウェアでもHyper-Vと共存させるとパフォーマンスが落ちてしまう場合は、やはりHyper-Vの動作を一時的に止めるとよい。

Hyper-VとWindowsハイパーバイザーの違い

 現在のWindows 10では、Windows OSの仮想マシン環境ソフトウェアとしての「Hyper-V」から、ハイパーバイザーは分離され、他のセキュリティ機能などでも利用されている。これまでは話を簡単にするために全てHyper-Vと呼んできたが、ここからは仮想マシン環境機能である「Hyper-V」とWindows OSのハイパーバイザー(「Windowsハイパーバイザー」と表記)を区別して記述することにする。

 仮想マシン環境機能であるHyper-Vは、Windows 10 Homeには含まれていないが、WindowsハイパーバイザーはHomeエディションにも含まれており、WSL 2はこれを利用して動作する。

 このようにWindows 10には、Hyper-Vとは別に、Windowsハイパーバイザーを使う機能が搭載されている。このため、Windows 10では、機能としてのHyper-Vが無効にされている、あるいはHomeエディションのように搭載されていないとしても、それはWindowsハイパーバイザーの停止や無効化、未インストールを意味しない。

 この点は、Windows 10より前のWindows OSやHyper-Vとは大きく違う点だ。このようにWindowsハイパーバイザーを利用する主なWindows OSの機能には以下のようなものがある。

  • Windows Subsystem for Linux Ver.2(WSL 2)
  • Windowsサンドボックス
  • Windows Defender Application Guard
  • Virtualization Based Security(VBS)
  • Hypervisor-Protected Code Integrity(HVCI)/Memory integrity

 これらの機能が有効である場合には、Hyper-Vが有効になっていなくてもWindowsハイパーバイザーが動作している。逆に、これらの機能を動作させるためにはWindowsハイパーバイザーの動作が必要だ。

 なお、Microsoftの用語は、時々変更されるため、Windows OSが表示する名称だけではWindowsハイパーバイザーの動作の有無が判断できないことがある。しかし、これら多くの機能がWindowsハイパーバイザーに依存していることは理解しておく必要がある。

 Windowsハイパーバイザーは、Hyper-Vとは別に利用されることから、[コントロールパネル]の[プログラムと機能]−[Windowsの機能の有効化または無効化]からHyper-Vを無効にしただけでは、Windowsハイパーバイザーを止めることはできない。その点にも注意が必要だ。

 もう1つ理解すべき点は、Windows 10 Homeであっても、Windowsハイパーバイザーが動作している可能性があるという点だ。過去には、Windows 10 Homeには、Hyper-Vがないため、CPUの仮想マシン支援機能など要件さえ満たせば、サードパーティー製の仮想マシン環境ソフトウェアをそのままインストールすればよいとされてきた。

 しかし、現在では、Hyper-Vが同梱されないHomeエディション(Windows 10 April 2018 Update以降)でも、「Windowsハイパーバイザープラットフォーム」を有効にしないと、サードパーティー製の仮想マシン環境ソフトウェアをインストールすることができない場合がある点に注意してほしい。

Windowsハイパーバイザーを一時停止させる方法

 先にHyper-Vと共存できない仮想マシン環境ソフトウェア(Intel HAXMなど)を利用するため、Windowsハイパーバイザーを一時停止する方法を説明する。どのような方法でもWindowsハイパーバイザーを起動、停止させる場合には、Windows 10を再起動する必要がある。これは、WindowsハイパーバイザーがWindowsカーネルよりも先に立ち上がって仮想マシン環境を準備するからである。

 また、前述のようにWindowsハイパーバイザーはさまざまなセキュリティ関連技術にも使われている。そのため、Windowsハイパーバイザーを停止させると、それらのセキュリティ対策も停止する。このようにWindowsハイパーバイザーの挙動を変えるような変更にはセキュリティ上のリスクがあるため、十分な注意が必要だ。

 では、Windowsハイパーバイザーが動作しているかどうかを確認する方法を紹介しよう。これは、Windows 10 Homeでも利用できる。

 コマンドプロンプトやWindows Terminalを管理者権限(管理者として実行)で起動して、「bcdedit」コマンドを実行する。bcdeditは「ブート構成データストアエディター」と呼ばれ、Windows 10の起動時のパラメーターを設定するプログラムだ。

 なぜ、これを使うのかというと、Windowsハイパーバイザーは、ブートマネージャーがWindows 10よりも先に起動し、その動作を決める設定がブート構成データストア(BCD:Boot Configuration Data store)に格納されているからだ。

 「bcdedit」では、コマンドライン引数に「{ }」で囲まれたパラメーターを使用するため、PowerShellに慣れていないユーザーはコマンドプロンプト(cmd.exe)を利用するとよい。というのは「{」「}」は、PowerShellのコマンドラインで特別な意味を持つため、エスケープ処理が必要だからだ。

bcdedit /enum {current}


Windowsハイパーバイザーが動作しているかを確認するコマンド

 PowerShellの場合は、最後の部分を「`{current`}」のように逆クオートを使ってエスケープ処理する必要がある。コマンドを実行すると、Windowsブートローダーの情報が表示される。

 その中に「hypervisorlaunchtype」という項目がある(「hypervisorlaunchtype」がない場合はHyper-VやWSL 2などが実行されていない)。ここが「Auto」になっている場合、Windows 10の起動時にWindowsハイパーバイザーも起動される。「Off」ならば、Windows 10の起動時にWindowsハイパーバイザーは起動せず、Windowsハイパーバイザーは動作していない。

 なお、bcdeditが扱う設定項目には、Windowsハイパーバイザーに関連するものが幾つかあり、それらが設定されていることもある。よく似た項目名(例えば「hypervisorloadoptions」という項目もある)と間違えないように注意してほしい。

bcdeditコマンドでWindowsハイパーバイザーの状況を確認する bcdeditコマンドでWindowsハイパーバイザーの状況を確認する
確認コマンドを実行したとき「hypervisorlaunchtype」が「Auto」になっていれば、Windowsハイパーバイザーが組み込まれており有効になっている。

 Windowsハイパーバイザーを停止させる場合、以下のコマンドを管理者権限で実行する。

bcdedit /set hypervisorlaunchtype off


Windowsハイパーバイザーを停止させるコマンド

Windowsのハイパーバイザーの組み込みを停止する Windowsのハイパーバイザーの組み込みを停止する
「bcdedit /set hypervisorlaunchtype off」でWindowsのハイパーバイザーの組み込みを停止できる。再起動すれば、Windowsハイパーバイザーが組み込まれずにWindows 10が起動する。

 この後、Windows 10を再起動することで、Windowsハイパーバイザーは読み込まれず、ハイパーバイザーなしでWindows 10が起動する。

 Windowsハイパーバイザーを再開させるには、以下のコマンドを実行して、Windows 10を再起動すればよい。

bcdedit /set hypervisorlaunchtype auto


Windowsハイパーバイザーを再開させるコマンド

Windowsのハイパーバイザーの組み込みを再開する Windowsのハイパーバイザーの組み込みを再開する
Windowsのハイパーバイザーの組み込みを再開する場合には、「bcdedit /set hypervisorlaunchtype auto」として再起動する。

 バッチファイルなどを作成するなら、Windows 10に標準で含まれているshutdown.exeなどと組み合わせておくといい。これに関しては、Tech TIPS「コマンドラインから電源オフや休止を実行する」を参照にしてほしい。

 また、bcdeditを使うことで、Windows起動時のブートメニューを作成し、起動時にWindowsハイパーバイザーの有効/無効を選べるようにすることも可能だ(Tech TIPS「他の仮想環境を利用するためにHyper-Vを一時的に無効にする」参照のこと)。

 Windowsハイパーバイザーと同居できない「Intel HAXM」「Android Emulator Hypervisor Driver for AMD Processors」のインストールなどに関しては、以下のページを参照してほしい。ここで「VMアクセラレーション」と呼ばれているのが仮想マシン環境ソフトウェアのことだ。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。