備忘録 仮想OSの動作不具合とその対策

2018-06-17 0 投稿者: iso8 (いそはち)

This post is also available in: ja日本語

仮想OSが動かなくなった

WindowsをホストOSとし、仮想化されたAndroidやUnixなどを動かそうとしたとき、
ブルースクリーン、あるいは画面が固まる、いわゆるハングアップするようになってしまったのですが、なんとか解決できたので方法をメモしておきます。

前提条件

Intel-VT、AMD-V など 仮想化支援機能がBIOS設定で有効になっており、
ホストOSのWindowsでHyper-V 機能が有効化されている(確認方法は添付画面参照)

スタート > Windows管理ツール でこうなっていたら Hyper-Vがインストールされている

根本的な原因

Windowsの機能であるHyper-Vを有効にしたまま、別の仮想OSプレイヤーを動かすことはできない

解決方法

Hyper-Vを削除する。具体的には、
スタート > Windowsシステムツール  > コントロールパネル > Windowsの機能の有効化または無効化

スタート > Windows システムツール > コントロールパネル

あるいは、スタート右クリック>ファイル名を指定して実行>OptionalFeatures.exe
を実行し、立ち上がった窓の上の方にある Hyper-V のチェックボックスを空欄にする。

windowsの機能の有効化または無効化

追記

頻繁にHyper-Vを使用される場合は、もう少し簡易的にOn/Offを切り替える方法として

こちらの記事が参考になるかもしれませんが、管理者権限でないと実行できないことや

どうしても再起動が必要という限界が残念ながらあるようです。

トラブルの経緯

自分の場合、Windows10をクリーンインストール後、もともと問題なく仮想OSを動かせる状態であり、VM ware workstation 上でUbuntuを動かしていました。しかし、仮想化Ubuntu上で動かしていたWebアプリケーションが期待より遅かったので原因を探ろうと思い立ち、Windowsの機能追加を確認していたところ、Hyper-Vの項に目がとまり、もしかして、Hyper-V 機能も追加しないと、ハードウェア支援が機能しないんじゃないか??と早合点してしまったのです。そんなバカなと言われそうですが、そんなお馬鹿さんはここに実在します。

つまり、

BIOSで支援機能ON  + Windows上でHyper-V 有効化 = 仮想OSの高速化 ??

なのか?と思いました。くどいですがこれは大きな勘違いです。

Hyper-Vというのは、Windows上で仮想OSを動かすプレイヤーそのものであり、VM ware workstation や Virtualbox のソフト本体に相当します。ところが理不尽なことに、立ち上げていなくてもHyper-Vはハード的な仮想化支援機能を乗っ取り、同種のソフトを起動した時 『そこは俺の縄張りだ』と言わんばかりに割り込んでくるっぽいです。結果、PCが固まってしまいます。

また、仮想OSとは名乗っていないものの、仮想化支援機能を利用しているソフトが存在しています。

例えば、AndroidエミュレータであるNox Player の場合、Intel-VT または AMD-V がONであれば高速化できる設定項目が存在します。実際、Noxをインストールしてあったのですが、見事に使えなくなりました。Windowsの初期状態ではHyper-Vは無効になっているはずなので、こんなトラブルは本来起きないと思いますが、例えば、

  • PCを家族で共有し、Hyper-Vを親が使用していてそれを知らずにNoxを動かそうとしたら固まった

というケースが考えられます。(この場合、逆パターンとして突然Hyper-Vが使えなくなったと別のトラブルになる恐れはあるんだろうか?)

NoxなどのAndroidエミュレーターを導入する方が多いようなので、念のためにメモしておきます。

追記

Hyper-Vとは書いていないものの、アンチウィルスのAvastが勝手に仮想化支援機能をONにしてしまってNoxが使えないという質問と回答がありました。

さらに追記

キーワードを変えて検索したら、ほぼ同じ内容の記事を書かれている方がいらっしゃいました。

早い段階でこちらの記事を見つけられたら苦労しなくて済んだのですが、運が悪かった。