seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

Windows8のHyper-VのOn/Offを簡単に切り替えられるようする方法

※ 急いでいる人はオチを見てね!

概要

新しくマシンを新調したら、Windows8のクライアントHyper-Vを有効にできるCPUだったので、ためしにHyper-Vを有効にしてみた。


Hyper-Vはハイパーバイザ型なので、ホストOS自身も仮想化されることになる。

このため、ゲストOSにCPU負荷がかかっていてもホストOSのタスクマネージャのCPU負荷率は変わらないし、
リアルなCPU負荷を確認するためにはパフォーマンスモニタでHyper-Vの論理CPU全体の負荷を確認する必要がある。


ホストOSが、すでに仮想化されているという状態であるため、Hyper-Vが有効な状態ではゲストOSを起動していない場合であっても、ホストOS上でさらに仮想マシンを必要とするソフトウェアは動作できなくなる。

たとえば、

などは、Hyper-Vが有効になっているWindows8では動作できない。


Hyper-Vもいろいろ試してみたいのだが、VirtualBoxも使いたいわけで、いろいろ調べてみることにした。

切り替え方法

Windows8のbcdeditで確認すると、hypervisorlaunchtypeという項目が増えている。

どうやら、これで起動時にハイパーバイザの有効・無効を設定できるようである。

C:\>bcdedit

Windows ブート マネージャー
--------------------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 8
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

ということで、まずは、このエントリをコピーする。

C:\>bcdedit /copy {current} /d "Hyper-V Disabled"
エントリは {1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} に正常にコピーされました。

で、このエントリのhypervisorlaunchtypeをOffに設定する。

C:\>bcdedit /set {1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}  hypervisorlaunchtype off
この操作を正しく終了しました。

あとは、コンピュータのプロパティから、システムの詳細設定を開き、「起動と回復」のオプションから、
オペレーティングシステムを選択するまでの秒数を適宜に設定する。

これで起動するときに、Hyper-Vを有効にするか、無効にするかを選択できるようになる。

結果

この方法で、たしかにHyper-Vの有効・無効を切り替えられるようにはなったようである。


やったぁ、これでVirtualBoxHyper-Vを使い分けられるぞ!!と喜び勇んでVirtualBoxをインストールしたら、

Windows8が起動しなくなりました...。


これが原因かどうかはわからないが、ものすごくヒヤッとしたので、もう試すことはないな。*1 *2

とりあえず、Hyper-VのOn/Offを切り替えることはできる、ということでメモを残す。

(私には、この方法は、役に立たなかった、ということで。)

参考URL

以上、メモ終了。

*1:三度目の再起動で自動リカバリモードにはいって、システム状態の復元で、なんとか起動できるようになった。

*2:VirtualBoxは他のマシンで使えばいいし、当分は、このマシンはHyper-Vの習得に専念することにする。