Help us understand the problem. What is going on with this article?

Vagrant 事始め 番外編 01 - Virtualbox が起動しない

More than 1 year has passed since last update.

Windows で Virtualbox が起動しないので、原因を調べたところ、Virtualbox は Hyper-V が有効になっていると、起動できないと言うことがわかりました。
正確に述べると、Virtualbox が利用する VT-X と Hyper-V は共存できないということです。

> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "a8bf9a84-7c2e-415d-8521-3ed9155b5499", "--type", "headless"]

Stderr: VBoxManage.exe: error: Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

VT-X と Hyper-V は共存できない

Because when hyper-V is installed on Windows 8 Pro, the hypervisor is running all the time underneath the host OS, and only one thing can control the VT hardware at a time for stability. The hypervisor blocks all other calls to the VT hardware..

Hyper-V の状態を確認する

管理者権限でコマンドプロンプトを起動して、確認します。

> bcdedit
Windows ブート マネージャー
--------------------------------
...

Windows ブート ローダー
--------------------------------
...
hypervisorlaunchtype    Auto

hypervisorlaunchtype Auto となっており、Hyper-V が必要とされるときに自動的に有効化される設定になっています。

Hyper-V を無効化する

管理者権限で起動したコマンドプロンプトで bcdedit /set hypervisorlaunchtype off を実行して、再起動をします。

> bcdedit /set hypervisorlaunchtype off

再起動をして、再度 Hyper-V の状態を確認すると無効化されています。

> bcdedit
Windows ブート マネージャー
--------------------------------
...

Windows ブート ローダー
--------------------------------
...
hypervisorlaunchtype    None

有効化する場合は bcdedit /set hypervisorlaunchtype auto (もしくは bcdedit /set hypervisorlaunchtype on) と実行した後に再起動をすれば、有効化されています。

注: bcdedit コマンドで設定を変更した場合、ふたたび設定を変更するには同コマンドの実行が必要になります。
(コントロールパネルや Powershell からでは変更が反映されないということ)

> bcdedit /set hypervisorlaunchtype auto

Hyper-V が無効になっていると

Hyper-V が無効になっていると、ハイパーバイザーを利用するアプリケーションが利用できなくなります。

例えば、Docker とか。

2018-04-12_15h20_50.png

Virtulbox と Docker を同時に利用することができませんが、回避策はあります。それは、Hyper-V が使用できない Windows 用の Docker Toolbox for Windows を利用すれば、同時に稼働はできると思います(未確認……)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした