Hyper-Vだけでなく、場合によってはサードパーティー製の仮想マシン環境ソフトウェアを使わなければならないこともある。そのような場合、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と呼ばれることがある。
主な仮想マシン環境ソフトウェアにで、それには、下表のようなものがある。なお、この他にも仮想マシン環境ソフトウェアはあるが、この記事では、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専用 |
Android Emulator Hypervisor Driver for AMD Processors | × | AMD CPU専用 | |
Microsoft | Windowsハイパーバイザープラットフォーム | ○ | Hyper-Vと共存可能 |
Windows 10上のAndroidエミュレーターが仮想マシン実行に利用するハイパーバイザー |
基本的な原理は、どの仮想マシン環境ソフトウェアも同じだ。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の動作を一時的に止めるとよい。
現在の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の機能には以下のようなものがある。
これらの機能が有効である場合には、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ハイパーバイザープラットフォーム」を有効にしないと、サードパーティー製の仮想マシン環境ソフトウェアをインストールすることができない場合がある点に注意してほしい。
先に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}
PowerShellの場合は、最後の部分を「`{current`}」のように逆クオートを使ってエスケープ処理する必要がある。コマンドを実行すると、Windowsブートローダーの情報が表示される。
その中に「hypervisorlaunchtype」という項目がある(「hypervisorlaunchtype」がない場合はHyper-VやWSL 2などが実行されていない)。ここが「Auto」になっている場合、Windows 10の起動時にWindowsハイパーバイザーも起動される。「Off」ならば、Windows 10の起動時にWindowsハイパーバイザーは起動せず、Windowsハイパーバイザーは動作していない。
なお、bcdeditが扱う設定項目には、Windowsハイパーバイザーに関連するものが幾つかあり、それらが設定されていることもある。よく似た項目名(例えば「hypervisorloadoptions」という項目もある)と間違えないように注意してほしい。
Windowsハイパーバイザーを停止させる場合、以下のコマンドを管理者権限で実行する。
bcdedit /set hypervisorlaunchtype off
この後、Windows 10を再起動することで、Windowsハイパーバイザーは読み込まれず、ハイパーバイザーなしでWindows 10が起動する。
Windowsハイパーバイザーを再開させるには、以下のコマンドを実行して、Windows 10を再起動すればよい。
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アクセラレーション」と呼ばれているのが仮想マシン環境ソフトウェアのことだ。
Copyright© Digital Advantage Corp. All Rights Reserved.