WSL2 と Virtual Boxの併用方法 (VERR_NEM_INIT_FAILED対策)

[記事内には広告が含まれています]

こんにちは、現役エンジニアの inno_tech です。

Windows10WSL2をインストール後、Virtual Box上のLinuxを起動するとエラー仮想マシンが起動しない状態に陥ります。 WSL2とVirtual Boxを併用するための設定 と 対策をまとめます。

本記事を見れば、WSL2インストール後の仮想マシンの起動エラーを解消し、WSL2とVirtual Boxを共存した環境を構築できるようになります。

Virtual Boxのインストール方法はこちらにまとめています。

あわせて読みたい
【初心者向け】Virtual Boxインストール手順まとめ(Windows編) 1台のPC上でWindowsとLinuxを同時に起動したいとお悩みでしょうか? 本記事を読めば、Windows上で仮想マシンを構築できるようになり、Linuxのような異なるOS環境も用意...

WSL2のインストール方法はこちらにまとめています。

あわせて読みたい
【初心者向け】WSL2のインストール ~ 基本操作をまとめて解説 WSL2を使って、Windows上でUbuntuを使用する方法をお探しでしょうか? 本記事を読めば、Windows10上にWSL2をインストールし、Ubuntuを使用できるようになります。 WSL2...

本記事は、Windows10 Pro(バージョン 21H2) / Virtual Boxがインストール済み の環境で動作確認をしています。

もくじ

問題 | WSL2 インストール後に仮想マシンが起動しない

WSL2インストール後、Virtual Boxマネージャーを起動し、仮想マシンを起動すると「Call to NEMR0InitVMPart2 failed: VERR_NEM_INIT_FAILED (VERR_NEM_VM_CREATE_FAILED).」というエラーが発生しました。

この時、下のようなポップアップが表示され、仮想マシンウィンドウが立ち上がりません。

Virtual Box | 仮想マシン起動時のエラー
Virtual Box | 仮想マシン起動時のエラー

この時使用していたVirtual Boxバージョンv6.1.28 でした。

Virtual Box | バージョン確認結果
Virtual Box | バージョン確認結果

次の章から、VERR_NEM_INIT_FAILED のエラーに対処していきます。

対策1 | Windowsハイパーバイザー プラットフォームを有効化

Windowsハイパーバイザー プラットフォームが必要

Virtual Box と WSL2を併用するには「Windowsハイパーバイザー プラットフォーム」の有効化必須です。解説は後で行い、まずは手順を説明します。

コントロールパネル > プログラムと機能 > Windowsの機能の有効化または無効化 をクリックします。

Windows | Windowsの機能の有効化または無効化
Windows | Windowsの機能の有効化または無効化

するとWindows機能の一覧が表示されます。

Windows | 機能の一覧
Windows | 機能の一覧

ちなみに、WSL2を有効化すると Linux用Windowsサブシステムにチェックが付きます。

続いて、下の方にある「Windows ハイパーバイザー プラットフォーム」をチェックを付けOKをクリックします。

Windows | 作業前の状態
Windows | Windows ハイパーバイザー プラットフォーム有効化
Windows | Windows ハイパーバイザー プラットフォーム有効化

機能を有効化したら、PCを再起動してください。

Windowsハイパーバイザー プラットフォームとはなにか?

WSL2は、Windowsの仮想化技術「Hyper-V」の一部機能を使用しています。

一方、Virtual BoxVMWare といったサードパーティー製の仮想化ソフトウェアは、独自の仮想化技術を使用しHyper-Vを使用しません

この仮想化方式の違いにより、Hyper-Vが登場した当初Hyper-V を有効化すると、Virtual Boxが使用できなくなるという問題がありました。(CPUの仮想化支援機能が占有されるため)

しかし時は流れ、「Windowsハイパーバイザー プラットフォーム」の登場により、Hyper-V経由で仮想化を実現するAPIが公開され、Hyper-V と サードパーティ製仮想化ソフトウェアの共存が可能になった、という経緯です。

ここまでのまとめです。

  • WSL2ではHyper-V の一部機能を利用する。
  • Hyper-Vを使用する場合Virtual Boxは、Windowsハイパーバイザープラットフォーム経由で仮想マシンを起動する
  • したがって、「Windowsハイパーバイザープラットフォーム」の有効化が必須

一方、Virtual BoxHyper-V経由での動作をサポートするバージョンを使用する必要があります。続いてはVirtual Boxのバージョンを最新化します。

対策2 | Virtual Box のバージョンアップ

Virtual Box側も同様に、Hyper-V上での動作がサポートされたバージョンを使用する必要があります。

さらに Virtual Box v6.1.28 は注意が必要で、Windows10でHyper-V経由での起動に失敗するというバグが報告されています。(問題レポート)

当方で検証した結果、最新バージョンの Virtual Box v6.1.34 は Windows10上でWSL2とVirtual Boxの共存に成功しました。

Virtual Box の最新化

すでにVirtual Boxをインストールしている場合、Virtual Boxマネージャーからアップデートを確認できます。

Virtual Box | アップデートの確認
Virtual Box | アップデートの確認

最新バージョンへのリンクが表示されるのでインストーラーをダウンロードしましょう。

Virtual Box |  最新バージョンのダウンロード
Virtual Box | 最新バージョンのダウンロード

ダウンロードしたインストーラーを実行し、セットアップします。インストーラーが起動したら Next をクリック。

VirtualBox | インストーラーの起動
VirtualBox | インストーラーの起動

インストールパッケージの変更は特に変更せずに、Next をクリック。

VirtualBox | インストールパッケージの確認
VirtualBox | インストールパッケージの確認

ショートカット等のオプションを設定し、Next をクリック。

VirtualBox | インストール設定
VirtualBox | インストール設定

インストール中にネットワークが一時切断されるため、警告が表示されます。 Yes をクリックして進めます。

VirtualBox | ネットワークの一時切断に関する警告
VirtualBox | ネットワークの一時切断に関する警告

インストール準備完了画面が表示されるので、Install をクリック。

VirtualBox | インストールの確認画面
VirtualBox | インストールの確認画面

インストール完了後、Finishをクリックして画面を閉じます。

VirtualBox | インストール完了
VirtualBox | インストール完了

インストール完了後、PCを再起動します。

Virtual Boxマネージャーを起動し、バージョンが更新されたことを確認しましょう。

VirtualBox | バージョンアップ結果の確認
VirtualBox | バージョンアップ結果の確認

Virtual Boxのバージョンアップ後の注意点

Virtual Boxのバージョンアップ後、注意点が2つあります。

注意点1 | Virtual Box Extension Packのアップデートも必要

Virtual Boxのバージョンアップ後、仮想マシンを起動すると別のエラー「Failed to construct device ‘usb-ehci’ instance #0 (VERR_PDM_DEVHLP_VERSION_MISMATCH).」が発生します。

Virutal Box | VERR_PDM_DEVHLP_VERSION_MISMATCH
Virutal Box | VERR_PDM_DEVHLP_VERSION_MISMATCH

これは Virtual Box本体 と Extension packのバージョン不一致が原因です。

続いて、Extension Packのバージョンアップ方法を説明します。

Virtual BoxのHPからインストールしたバージョンと一致するExtension Packをダウンロードしてください。

Virtual Box | Extension Packのダウンロード
Virtual Box | Extension Packのダウンロード

VirtualBoxマネージャ > ファイル > 環境設定 を開き、機能拡張タブを開きます。画面右側の+ボタンからExtension Packを追加します。

VirtualBox | Extension Packのアップグレード
VirtualBox | Extension Pack アップグレード前

すでに古いバージョンがインストールされている場合、下の画像のようなメッセージが表示されます。そのまま「アップグレード」を選択します。

VirtualBox | Extension Pack アップグレード確認画面
VirtualBox | Extension Pack アップグレード確認画面

ライセンス同意画面が開くので、同意します を選択します。

VirtualBox | Extension Pack ライセンス同意
VirtualBox | Extension Pack ライセンス同意

以上でExtension Packがインストールされます。Virtual Boxのバージョンと一致することを確認してください。

VirtualBox | Extension Pack アップグレード後
VirtualBox | Extension Pack アップグレード後

注意点2 | 仮想マシン側の Guest Additions のアップデートも必要

Virtual Box と Extension Packのバージョンを揃え、仮想マシンを起動するとログイン画面が起動します。

VirtualBox | Ubuntuの起動
VirtualBox | Ubuntuの起動

仮想マシンが起動した! 解決だー

と思って、ログインしてみると画面が真っ暗(ブラックスクリーン)の状態になり、起動してきません。

VirtualBox | Ubuntuのログイン後に画面が真っ黒
VirtualBox | Ubuntuログイン後に画面が真っ黒

おかしいなー

原因は、仮想マシン側のGuest Additionsバージョンが古いことでメッセージが大量に発生し、仮想マシンの動作が異常に遅いためでした。

絶対的な対処法は不明ですが、ログを確認したところオーディオ系のエラーが多かったので、一旦オーディオを無効化しました。

VirtualBox | オーディオの無効化
VirtualBox | オーディオの無効化

とりあえず接続デバイスを減らして起動負荷を減らす作戦です!

オーディオの無効化をして、再度仮想マシンを起動したところデスクトップ画面が表示されました。

しかし、画面上部にGuest Additionsのバージョン不一致(Failure waiting for event, rc-VERR_INVALID_HANDLE)のエラーが定期的に表示されます。

VirtualBox | Guest Additionsバージョン不一致によるエラー
VirtualBox | Guest Additionsバージョン不一致によるエラー

対策として、Guest Additionsのバージョンアップを行います。

仮想マシンの上部メニューから、デバイス > Guest Additions CDイメージの挿入 をクリックします。

VirtualBox | Guest Additions CDイメージを挿入
VirtualBox | Guest Additions CDイメージを挿入

これにより、/media/[username]/VBox_GAs_[version]がマウントされます。ターミナルから以下のようにGuest Additionsをインストールします。

# マウント先に移動
cd /media/[username]/VBox_GAs_[version]

# インストール
sudo ./VBoxLinuxAdditions.run
VirtualBox | Guest Additionsインストール
VirtualBox | Guest Additionsインストール

v6.1.28 から v6.1.34にアップグレードされました。仮想マシンを再起動しましょう。

以上で、仮想マシンが正常に使用できるようになります。一時的に無効化した機能は元に戻しましょう。

お疲れ様でした~!

まとめ

今回のまとめです。

  • WSL2との併用は、Windowsハイパーバイザープラットフォームの有効化が必要。
  • Windowsハイパーバイザープラットフォームに対応したVirtual Boxのバージョンを使用しよう。
  • Extension Pack, Guest Additionsのバージョンアップも忘れないように!

2021年全国の本屋さんで最も売れた年間ベストセラー本が気になる方はこちら

参考になったでしょうか。
ほかにも役立つ情報が他のページにもあるかもしれません。
ご覧になるかはあなた次第です!

この記事がイイねと思ったら、Twitterフォロー か  にほんブログ村のどちらかしてくれたら嬉しいよ!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント / ご要望

コメントする

goto
もくじ
閉じる