Windows OS標準の仮想環境「Hyper-V」をインストールしていると、それ以外の仮想環境を利用することができない。こんな場合はHyper-Vを一時的に無効にしてシステムを再起動させるとよい。
対象OS:Windows 8/Windows 8.1/Windows 10/Windows Server 2012/Windows Server 2012 R2
Windows OSでは標準の仮想環境としてHyper-Vが利用できる。Windows Server OSだけでなく、クライアント向けのWindows 8/8.1/10(64bit版のPro/Enterpriseエディション)でもHyper-Vが利用できるため(→参考記事)、OSを問わず仮想実行環境を統一することが可能になった。
クライアント向けのHyper-Vは、Windows OSなどをインストールして実験に使うだけでなく、例えばVisual StudioでユニバーサルWindowsアプリを開発する際に、さまざまな実行環境(WindowsタブレットやWindows Phoneなどのエミュレーター)を実行するためにも利用されている。
だが最近ではHyper-V以外の仮想実行環境を利用したいことも少なくないだろう。他のシステムとの相互運用性などを考えると、例えばVMware(→参考記事)やVirtualBox(→参考記事)、Vagrant(これは仮想環境を管理するツール。→参考記事)などの需要があるだろう。またAndroidアプリの開発を行うなら、Intel HAXM(Intel Hardware Accelerated Execution Manager。Androidのアプリ開発でよく使われる仮想環境)を使うことも多いだろう。
だがWindows OSにHyper-V機能がインストールされていると、これらの仮想環境アプリケーションは競合を起こして利用できない。Hyper-Vが有効なシステムでこれらを起動しようとすると、例えば次のように表示される。
これのようなエラーを解消するには、Hyper-V機能をアンインストールすればよい(コントロールパネルの[プログラムと機能]にある[Windowsの機能の有効化または無効化]で「Hyper-Vプラットフォーム」の設定をオフにする)。とはいえ、この方法ではまたHyper-Vを使いたい時に面倒である。
そこでこのような場合は、Hyper-Vを一時的に無効にしてシステムを再起動するとよい。Hyper-Vが必要な場合は、またHyper-Vを有効にしてシステムを再起動する。本TIPSでは、ブートメニューを切り替えてHyper-V機能を有効化/無効化する方法を紹介する。
Hyper-Vの有効/無効を切り替えるには、いちいちシステムを再起動しなければならない。それでも、Hyper-V機能をインストールしたりアンインストールしたりするよりははるかに簡単である。
Hyper-Vの有効/無効の切り替えは、ブートメニューの設定変更だけで対応できる。
まず管理者権限でコマンドプロンプトを開き、「bcdedit」コマンドで現在のブートメニュー項目をコピーして、新たに作成する。「/copy {current}」は現在選択・実行されているメニュー項目をコピーして新規作成するための指示である。「/d 〜〜」はブートメニュー名を指定する文字列なので、分かりやすいものを付けておく。
bcdedit /copy {current} /d "Hyper-Vなし Windows 10"
これを実行すると新しいID文字列(メニューID)が表示されるので、それを/setに続けて記述して、次のコマンドを実行する。
bcdedit /set {<新しいID文字列>} hypervisorlaunchtype off
実際に実行すると次のようになる。
C:\>bcdedit /copy {current} /d "Hyper-Vなし Windows 10" ……ブートエントリのコピー
エントリは {ea807010-88da-11e5-b8d5-84fe47afc82d} に正常にコピーされました。 ……この結果の {ea8070〜〜afc82d} の部分をコピーして、次のコマンドを実行する
C:\>bcdedit /set {ea807010-88da-11e5-b8d5-84fe47afc82d} hypervisorlaunchtype off ……Hyper-Vを無効にする設定
この操作を正しく終了しました。
C:\>bcdedit ……ブートメニューの編集結果を確認する
Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
……<中略>……
displayorder {current} ……ブートメニューの表示順序。これは現在のメニュー項目
{ea807010-88da-11e5-b8d5-84fe47afc82d} ……新しく追加したメニュー項目
toolsdisplayorder {memdiag}
timeout 30 ……メニュー選択のタイムアウト(30秒経つとデフォルト項目が自動的に選択される)
Windows ブート ローダー ……元のブートメニュー項目
--------------------------------
identifier {current} ……{current} となっているのが、現在のデフォルトブート項目
device partition=C:
path \Windows\system32\winload.efi
description Windows 10 ……元のブートメニューの表示名
locale ja-JP
……<中略>……
bootmenupolicy Standard
Windows ブート ローダー ……新しくコピーして追加したブートメニュー項目
--------------------------------
identifier {ea807010-88da-11e5-b8d5-84fe47afc82d} ……新規作成されたブートメニューを識別するID文字列
device partition=C:
path \Windows\system32\winload.efi
description Hyper-Vなし Windows 10 ……新しいブートメニューの表示名。これがOS選択画面に表示される
locale ja-JP
inherit {bootloadersettings}
……<中略>……
bootmenupolicy Standard
hypervisorlaunchtype Off ……このブートメニュー項目ではHyper-Vが無効になる
C:\>
これでシステムを再起動すると、OSを選択するブートメニューが表示されるはずである。もし表示されないようなら[Shift]キーを押しながら[スタート]画面の[再起動]メニューを実行する。するとトラブルシューティングのメニューなどが表示され、そこでも起動するOSを切り替えることができる。
デフォルトでは、30秒経つと自動的に上側のメニュー(この例では「Windows 10」の方)が選択され、Hyper-Vが有効になった状態でシステムが起動する。一方、下側の方をクリックすると、Hyper-Vが無効になってシステムが起動する。こちらの方をデフォルトにしたければ、下にある[既定の起動設定やその他のオプションの変更]をクリックして設定すればよい。
ブートメニューのデフォルト選択肢や表示順序、タイムアウト値などは、bcdeditコマンドやシステム構成コマンド(msconfigコマンド)でも切り替えられる。詳細は以下のTIPSなどを参照していただきたい。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.