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

» 2021年07月29日 05時00分 公開
[塩田紳二]
前のページへ 1|2       

Windowsハイパーバイザープラットフォームを使う方法

 Windowsハイパーバイザープラットフォームを有効にする方法は2つある。1つは[コントロールパネル]から設定する方法、もう1つはPowerShellのコマンドを使う方法だ。どちらも1回Windowsハイパーバイザープラットフォームを有効化すれば、基本的には再設定などは必要ない。

 なお、Windows 10の最近のバージョンでは、Windowsハイパーバイザープラットフォームが標準状態で有効になっているようなのだが、正式な確認が取れない。以下の設定をしなくてもサードパーティー製の仮想マシン環境ソフトウェアを動作させることが可能な場合がある(詳細は記事末のコラム参照)。しかし、そもそも、この機能が何をインストールしているのかが不明なこと、標準状態で有効になっていないWindows 10バージョンの存在を否定できないため、念のため以下の方法で有効化しておくことをお勧めする。

 まず、手作業で設定する方法だが、[コントロールパネル]の[プログラムと機能]を開き、左側にある[Windowsの機能の有効化または無効化]をクリックする。[Windowsの機能]ダイアログが開くので、「Windowsハイパーバイザープラットフォーム」(英語環境では、Windows Hypervisor Platform)のチェックを「オン」にする。

 この機能は、Windowsハイパーバイザーの機能であるため、Homeエディションでも利用可能だ。Homeエディションには、Hyper-Vが含まれていないが、WSL 2用などでWindowsハイパーバイザーが動作していることがある。このような場合でも、この機能を「オン」にすれば、VirtualBoxなどのサードパーティー製の仮想マシン環境ソフトウェアを利用できるようになる。

Windowsハイパーバイザープラットフォームを有効にする(1) Windowsハイパーバイザープラットフォームを有効にする(1)
[コントロールパネル]の[プログラムと機能]で左ペインの[Windowsの機能の有効化または無効化]をクリックする。
Windowsハイパーバイザープラットフォームを有効にする(2) Windowsハイパーバイザープラットフォームを有効にする(2)
[Windowsの機能]ダイアログが開くので、ここで「Windowsハイパーバイザープラットフォーム」にチェックを入れる。

 PowerShellコマンドレットを利用する場合には、「Get-WindowsOptionalFeature(設定の確認)」「Enable-WindowsOptionalFeature(設定の有効化)」を使う。「Windowsハイパーバイザープラットフォーム」が有効かどうかの確認には、管理者権限でPowerShellを開き、以下のコマンドレットを使う。

Get-WindowsOptionalFeature -online -FeatureName hypervisor*

設定を確認するためのPowerShellコマンドレット

WindowsハイパーバイザープラットフォームをPowerShellで有効にする WindowsハイパーバイザープラットフォームをPowerShellで有効にする
PowerShellからもWindowsハイパーバイザープラットフォームの状態確認と有効化が行える(PowerShellを管理者として実行で起動する必要あり)。

 このコマンドレットを実行して、出力の「State」が「Disabled」になっている場合、Windowsハイパーバイザープラットフォームは無効状態だ。有効化する場合には、以下のコマンドレットを使う。

Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform

Windowsハイパーバイザープラットフォームを有効にするPowerShellコマンドレット

 逆に無効化したい場合には、以下のコマンドレットを実行する。

Disable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform

Windowsハイパーバイザープラットフォームを無効にするPowerShellコマンドレット

WindowsハイパーバイザープラットフォームをPowerShellで無効にする WindowsハイパーバイザープラットフォームをPowerShellで無効にする
PowerShellからもWindowsハイパーバイザープラットフォームの状態確認と無効化が行える(PowerShellを管理者として実行で起動する必要あり)。

 この機能の有効化/無効化では、Windowsの再起動は必要ない。

 これで、Type 2 Hypervisorに分類されるVirtualBox(Ver.4.0以上)やVMware Workstation Pro(Ver.15.5以上)といった仮想マシン環境ソフトウェアをHyper-Vと共存させることが可能になる。それぞれのインストールなどについては、サポートWebサイトなどを確認されたい。事前に、Windowsハイパーバイザープラットフォームを有効にしておけば、特にインストール手順などの変更はなかった。

Hyper-V以外の仮想マシン環境ソフトウェアが必要になることも…… Hyper-V以外の仮想マシン環境ソフトウェアが必要になることも……
Hyper-VとVirtualBox、VMware Workstation Proをインストールしてみた。結果は同じだが、仮想マシンへのOSのインストール方法や管理方法に違いがあり、必ずしもHyper-Vかベストであるとは限らない。また、配布されている仮想マシンのイメージや仮想ディスクによっては、Hyper-V以外の仮想マシン環境ソフトウェアが必要になることもある。

 また、Androidエミュレーターでも「Windows ハイパーバイザープラットフォーム」を利用できる。これに関しては、Android Studioユーザーガイド「Windows Hypervisor Platform を使用する VM アクセラレーションを設定する」を参照してほしい。

 仮想マシン環境ソフトウェアは、同じCPUの仮想マシン支援機能を利用するものの、その管理方法などには違いがある。このため、Windowsハイパーバイザープラットフォームで利用すると、必ずしも仮想マシン環境ソフトウェアの最大性能が発揮できないことがある。これは、仮想マシンの制御を必ずWindowsハイパーバイザー経由で行うためのオーバーヘッドが存在するからだ。

 このような場合、Windowsハイパーバイザープラットフォームを利用せず、前述の手順を使ってWindowsハイパーバイザーを一時的に無効にすることで、性能を上げられる可能性がある。

 現在のWindows 10では、さまざまなセキュリティ関連技術にWindowsハイパーバイザーが使われている。このため、Windowsハイパーバイザー関連の設定を行う場合、セキュリティ上のリスクが発生する恐れがある。Windowsハイパーバイザーに関連するコマンドや設定を行う場合には、セキュリティ的なリスクについて理解し、注意の上で行ってほしい。

Windowsハイパーバイザープラットフォームはデフォルトで有効なのか無効なのか?

 Windowsハイパーバイザープラットフォームは、最近のWindows 10では、標準状態で有効になっているようだ。ただ、[Windowsの機能の有効化と無効化]では、この項目のチェックボックスが標準では「オフ」になっている(Windows 10 October 2020 UpdateとMay 2021 Update)。

 「標準状態で有効になっている」と思われるのは、Windowsハイパーバイザープラットフォームの実体となる「WinHvPlatform.dll」が「C:\Windows\System32」に存在しているからだ。ただし、過去のどのバージョンから標準で搭載されているのかは確認できなかった。

 このため、現行バージョンのWindows 10では[Windowsの機能の有効化と無効化]を操作しなくても、Windowsハイパーバイザープラットフォームに対応したサードパーティー製の仮想マシン環境ソフトウェア(VirtualBoxとVMware Workstationで確認)がそのまま動作する。

 しかし、この件について、Microsoftのドキュメントを調べてみたが、確実と思えるようなものを見つけることはできなかった。このため、標準状態で有効になっている「ようだ」としかいいようがない。

 「Windowsハイパーバイザープラットフォーム」の設定項目は、最近のバージョンでも存在しており、この項目を「オン」にするように解説するMicrosoftのドキュメントもある。さらに、「Windowsハイパーバイザープラットフォーム」を有効としたときに、その実体であるWinHvPlatform.dll以外に何かインストールされているのかも不明だ。

 このため、本文にあるように、念のため、[Windowsの機能の有効化と無効化]でWindowsハイパーバイザープラットフォームを有効化しておくべきと考える。

 [Windowsの機能の有効化と無効化]でWindowsハイパーバイザープラットフォームを無効に設定すると、それらしい動作が行われるがWinHvPlatform.dllが削除されることはなく存在し続ける。このため、Windowsハイパーバイザープラットフォームの「有効」「無効」にかかわらず、サードパーティー製の仮想マシン環境ソフトウェアが普通に動いているようにユーザーから見える。

 実際にはWinHvPlatform.dllは設定状態にかかわらず常に存在しており、サードパーティー製の仮想マシン環境ソフトウェアは、Windowsハイパーバイザープラットフォームを利用してHyper-V(あるいはWindowsハイパーバイザー)と共存していると思われる。


前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

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

メールマガジン登録

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