Hypervisor が自分のマシン上で動いているのか知る方法

Hyper-VはルートOSもHypervisor上の”ドダイ”に乗って動きます。サーバ用と思われがちなHyper-Vですが、クライアント機でも”ある場面”では自身がHypervisor上で動いているか否かでふるまいが異なります。ときにハマります。例えば・・・

  • Intel HAXM (x86のAndroidエミュレータ)を使う場合
  • VirtualBoxで64bit OSを使うとき
  • VirtualBoxで32bitであっても、最近のUbuntuのようにPAE拡張を使うOSな場合
  • Hyper-VとVirtualBoxが共存する環境で普段はVirtualBox、まれにHyper-Vを動かしたいとき

エラー事例(Intel HAXM)

HAXMインストール時
 
エミュレータ実行時

Hypervisor 上でルートOSが動いているか確認する方法

TechNetが提供しているツールにCoreinfoというものがあります(Sysinternals Suiteにも同梱)。これをダウンロード、適当なところに展開。コンソールから実行します。Hypervisor is present の部分が異なります。

Hypervisor = off

C:>Coreinfo.exe

Coreinfo v3.31 - Dump information on system CPU and memory topology
Copyright (C) 2008-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
Microcode signature: 00000018
HTT * Hyperthreading enabled
HYPERVISOR - Hypervisor is present
VMX * Supports Intel hardware-assisted virtualization
SVM - Supports AMD hardware-assisted virtualization
X64 * Supports 64-bit mode

Hypervisor = On

C:>Coreinfo.exe

Coreinfo v3.21 - Dump information on system CPU and memory topology
Copyright (C) 2008-2013 Mark Russinovich
Sysinternals - www.sysinternals.com

Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
HTT * Hyperthreading enabled
HYPERVISOR * Hypervisor is present
VMX - Supports Intel hardware-assisted virtualization
SVM - Supports AMD hardware-assisted virtualization
EM64T * Supports 64-bit mode

SMX - Supports Intel trusted execution
SKINIT - Supports AMD SKINIT

Hypervisor の有無を起動オプションで制御する方法

■[Windows] Windows8のHyper-VのOn/Offを簡単に切り替えられるようする方法
こちらに紹介がありました。seraphyさんありがとうございます。

C:>bcdedit /copy {current} /d "Hyper-V Disabled"
エントリは {1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} に正常にコピーされました。
C:>bcdedit /set {1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}  hypervisorlaunchtype off
この操作を正しく終了しました。


とりわけノートPCの無線LANを仮想ネットワークで組み込んでHyper-V運用することは、トラブルの引き金になることが多いので、ノートPCの場合はこれ一発でいいと思います。

bcdedit /set {current}  hypervisorlaunchtype off
この操作を正しく終了しました。

以上

参考

ホスト型とハイパーバイザー型の違いは何? -ThinkIT-
coreinfoツールでCPUの仮想化対応機能をチェックする -@IT-
BCDEdit /set -Windows | デベロッパーセンター-
「ハイパーバイザーが実行されていない」とは – Hyper-V と VMware Server は 1台の PC で共存できるか? Part1 -Nire.Com-
OSがどんなハイパーバイザー/コンテナ上で動いているか確認するツールのコードを読んだ -φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ-