WSL2とVirtualBoxの現状

1.WSL2とVirtualBoxの現状

WSL2を有効にしたときにVirtualBoxはどうなのか確認してみました。

結果から言うと、不安定で使えなかったです。

デスクトップが表示されるところまでは行きます。でも、画面の大きさを変えたり、sudo apt upgradeしてもsegmentation faultで止まったりします。

フォーラムでの開発者の発言を聞いていると、とりあえず動くようにはしたけどといった発言が見られます。開発の優先順位は低くて、あまり活発に開発しているようには見えません。

また、安定してきたら試してみようと思います。

2.Hyper-VとVirtualBoxのこれまでの関係

VirtualBoxは、Windows 10 1809のときにHyper-Vに対応しました。VirtualBoxのバージョンは、6.0.0です。

Windows 10 1903のときに、MicrosoftがAPIを変更してしまって、VirtualBoxは動かなくなりました。この変更は、すべての処理をユーザーモードで行うことを強制するものです。VirtualBoxの開発者の方の話では、全てをユーザーモードで処理するのは耐えられないそうです。I/Oのパフォーマンスが出ないそうです。

VirtualBox 6.1.0になって、VirtualBoxとしての最適化は無しでまた動くようにはしたそうです。けれど、自分の方で試した限りでは安定して動いていません。フォーラムを見ていると不具合報告も出ていますが、開発者サイドでは不具合が出ていなくて、特に対応もしていないようです。

3.まとめ

WSL2とVirtualBoxの現状を確認しました。残念ですが、安定して動作していません。

また、安定したら試してみようと思います。

WSL2とVMware Workstation Player 15.5.5の共存を確認

1.WSL2とVMware Workstation Player 15.5.5の共存を確認

WSL2(Windows Subsystem for Linux 2)とVMware Workstation Player 15.5.5の共存を確認しました。

前回WSL2のインストールまでやりましたが、VMware Workstation Playerをインストールしたら動作を確認できました。

2.WSL2とVMware Workstation Playerを共存させるとき注意すること

注意するべき点が2点あります。

  1. WSL2を有効にする前にVMware Workstation PlayerのゲストOSの電源を切っておくこと
  2. Intel VT-x/EPTまたはAMD-V/RVIを仮想化のチェックを外しておくこと

WSL2を有効にする前に電源を切っておきましょう。一度、VMware Workstation Player 15.5.5で起動すれば、WSL2の有効と無効に関係なくサスペンドと復帰を繰り返すことができます。しかし、最初だけ念のため切っておいたほうがいいです。

サスペンドの状態にしたままの場合、次の方法で電源を切りましょう。

管理者としてPowerShellを開きます。

bcdedit /set hypervisorlaunchtype off

パソコンを再起動します。すると、WSL2が一時的に無効になっていますので、ゲストOSを起動し電源を切ります。

このあと、もう一度管理者としてPowerShellを開きます。

bcdedit /set hypervisorlaunchtype auto

これで、WSL2が有効になりますので、パソコンを再起動します。

2番めのチェックは、ゲストOSの設定->ハードウェアー>プロセッサー>仮想化エンジンのところにあります。

3.エラーの詳細

Intel VT-x/EPTまたはAMD-V/RVIを仮想化のチェックを忘れてゲストOSを起動すると、次のようなエラーが出ます。

パワーオン中にエラーが発生しました:VMware Playerはこのホスト上でネストされた仮想化をサポートしていません。

また、VMware Workstation Player 15.5.5以前のものを使っていると、次のようなエラーが出ます

VMware PlayerとDevice/Credential Guardには互換性がありません。

4.まとめ

WSL2を有効にしてもVMware Workstation Playerが動くことで、どちらも使うことができていいですね。

VMwareは、Hyper-VのHypervisorの上で動作しているというこで、ネストされた仮想化を使うことができませんが、凝ったことをしたいときはWSL2を無効にすることで対処できそうです。

WSL2の有効無効に関係なく、ゲストOSのサスペンドと復帰が使えるのが便利です。

もう少し使って、安定性など使い勝手を検証してみたいと思います。

Windows 10 May 2020 UpdateでWSL2(Windows Subsystem for Linux 2)の始め方

1.はじめに

Windows 10 を May 2020 Updateへの更新が開始されました。WSL2(Windows Subsystem for Linux 2)が正式にサポートされます。そこで、まずWSL2を使えるようにすることにしました。

2.Windows 10 May 2020 Updateへのアップデート

May 2020 Updateへの更新は、Windows Updateを通じて行われます。首を長くして待っていたのですが、Windows Updateのページに表示されません。そこで、手動でアップデートすることにしました。

ただ、すでに不具合も報告されています。

Windows 10, version 2004 and Windows Server, version 2004

Intelの内蔵GPUを使っていると、DirectX 9を使ったゲームで可変リフレッシュレートが有効になりません。

また、Nvidiaの古いディスプレイドライバ358.00以前を使っているとブルースクリーンになる。

というものです。自分のPCは、Intelの内蔵GPUを使っているのですが、ゲームをやらないのでアップデートを実行しました。

3.WSL2のインストール

WSL2のインストールは、コマンドラインでやる方法と、設定をマウスでクリックする方法があります。今回は、コマンドラインの方法を使いました。

管理者としてPowerShellを開き、Microsoft-Windows-Subsystem-LinuxとVirtualMachinePlatformを有効にします。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

PCを再起動します。

もう一度管理者としてPowerShellを開きます。WSL2を既定のバージョンとして設定します。

wsl --set-default-version 2

このときに次のようなエラーが出ます。

WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

表示されたサイトに行って、Linuxカーネルをインストールします。もう一度規定のバージョンを実行します。次のようなメッセージが出れば成功です。今後、Linuxカーネルのインストールは、Windows Updateで更新される予定のようです。

WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

4.ゲストOSのインストール

ゲストOSは、Microsoft Storeからインストールします。

Microsoft Storeを立ち上げ、Ubuntuを検索します。Ubuntu 20.04 LTSをインストールしました。Ubuntuのみの表示のものは、最新のUbuntuを示しています。Ubuntu 20.04 LTSと同じですが、バージョン番号があったほうが便利なので、番号の表示付きのものを選びました。

インストールが完了するとスタートメニューにUbuntu 20.04 LTSが登録されます。最初の起動時にユーザー名とパスワードを聞かれますので、登録してください。

実際に使ってみると、Linuxのカーネルが起動したあとinitプロセスが動いているくらいで、本当に最小のLinuxシステムが起動しています。サーバーやアプリケーションもほとんど入っていなくて、自分でインストールしなければいけません。これだったら、1,2秒で起動するのも当たり前だなと思いました。

5.まとめ

Windows 10 May 2020 Updateで、WSL2のインストールと起動を確認しました。今後、いろいろ使ってみようと思っています。