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の有効・無効を切り替えられるようにはなったようである。
やったぁ、これでVirtualBoxとHyper-Vを使い分けられるぞ!!と喜び勇んでVirtualBoxをインストールしたら、
Windows8が起動しなくなりました...。
これが原因かどうかはわからないが、ものすごくヒヤッとしたので、もう試すことはないな。*1 *2
とりあえず、Hyper-VのOn/Offを切り替えることはできる、ということでメモを残す。
(私には、この方法は、役に立たなかった、ということで。)
参考URL
- MSDN Blog -- Virtual PC Guy Blog -- Creating a "no hypervisor" boot entry (← Hyper-Vの切り替え方の説明。ここはMSDNブログなので、このbcdeditを使う方法は間違いではなさそう。)
- derekgusoff -- Run Hyper-V and VirtualBox on the same machine (← VirtualBoxとHyper-Vをうまく共存させられた人もいるらしい。)
以上、メモ終了。
*1:三度目の再起動で自動リカバリモードにはいって、システム状態の復元で、なんとか起動できるようになった。
*2:VirtualBoxは他のマシンで使えばいいし、当分は、このマシンはHyper-Vの習得に専念することにする。