IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

macOS 仮想環境のWindowsでのWSL設定

どうも、nippa です。

macOS 上に VMware / VirtualBox で Windows11 をインストールして、WSL を利用しよう と思い試行錯誤しました。

どうしても WSL の環境を用意する必要があったのですが、すんなりとはいかなかったの と、なかなか情報もなかったので、まとめて置こうと思います。

macOS 上で Windows + WSL の環境をつくる人もそういないと思いますが。

環境

  • macOS 14.4
  • Virtual Box 7.0

WSL のバージョンについて

WSL1 と WSL2 の違いですが、以下の通りです。

  • WSL1: Linux カーネルをエミュレートしており、Windowsファイルシステムと直接統 合されている。起動が早く、WindowsLinux 間のファイルのやり取りが速いが、ネ イティブの Linux カーネルではないため、完全な互換性がない。

  • WSL2: 実際の Linux カーネル仮想マシン上で実行しており、Linux アプリケーショ ンの互換性が向上している。一方で、仮想化技術を使用するため、WSL1 に比べて起動 が少し遅く、WindowsLinux 間のファイルのやり取りが若干遅くなることがある。

WSL2 では Linux カーネルを実際に動かしていますので、Linux を利用しているのと同じ ですが、WSL1 では Linux Like な環境を動かしていると認識しておけば良いと思います 。この差が環境構築にも影響します。

仮想環境上の Windows での WSL の利用

WSL の対応状況

Microsoft のページに仮想環境(VMware/VirtualBox)での WSL の対応状況が記載されて いました。

https://learn.microsoft.com/ja-jp/windows/wsl/compare-versions

仮想環境上では WSL1 は対応しているが、WSL2 は対応できていないということです。

Hypervisor 上で Hypervisor を動かすのはなかなか大変ということだと思います。

仮想環境の Windows での WSL の有効化

Windows11 では WSL のバージョンは2がデフォルトになっています。

仮想環境上で WSL を利用するには、WSL1 に変更して利用する必要があります。以下の手 順書 WSL の有効化をしていきます。

  1. wsl のインストール

    PowerShell を開いて、以下のコマンドを実行して wsl のコマンドをインストールし ます。

   wsl --install

  1. WSL のバージョンの設定

    現在のところ、仮想環境の Windows では WSL1 のみが対応しています。Windows11 で はデフォルトがバージョン2もしくは、設定されていないので、バージョン1に設定 します。

    まず、WAS のデフォルトのバージョンが設定されているかを確認します。

   wsl -l -v

   # 出力結果
   Linux 用 Windows サブシステムにインストールされているディストリビューションはありません。

デフォルトをバージョン 1 にセットします。

   wsl --set-default-version 1

   # 出力結果
   この操作を正しく終了しました。

以下のようなエラーが出る場合があります。この場合、WindowsLinux サブシステ ムが有効化されていないことが原因です。

   WSL1 は、現在のマシン構成ではサポートされていません。
   WSL1 を使用するには、"Linux 用 Windows サブシステム" オプション コンポーネントを有効にしてください。
   エラー コード: Wsl/WSL_E_WSL1_NOT_SUPPORTED

有効化は「コントロールパネル」-「プログラム」-「プログラムと機能」-「Windows の機能の有効化または無効化」から「LinuxWindows サブシステム」にチェックを いれるか、下記コマンドで有効化し、マシンを再起動で解決できます。

   Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  1. WSL 用のディストリビューションのインストール

    インストール可能なディストリビューションの確認をしてインストールします。

   # ディストリビューションの確認
   wsl -l --online

   # 出力結果
   NAME                   FRIENDLY NAME
   Ubuntu                 Ubuntu
   Debian                 Debian GNU/Linux
   kali-linux             Kali Linux Rolling
   Ubuntu-18.04           Ubuntu 18.04 LTS
   Ubuntu-20.04           Ubuntu 20.04 LTS
   Ubuntu-22.04           Ubuntu 22.04 LTS
   openSUSE-Tumbleweed    openSUSE Tumbleweed

   # ディストリビューションのインストール
   wsl --install Ubuntu22.04 1

これで WSL(ubuntu22.04 アプリ)が起動できればインストール完了になります。

WSL2 をインストールして実行した場合のエラー

WSL2 をインストールして実行すると以下のようなエラーが発生します。WSL1 にバージョ ンを変更してインストールしてください。

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
Press any key to continue...

感想

今回、macOS で 仮想環境の Windows11 に WSL をインストールしました。情報が少なく 手間取ったので、対応方法を残しておきます。

仮想環境の Windows が WSL2 に対応するとこのような作業はなくなると思いますが、ま だしばらくは難しそうなのでこの方法を試してみてください。

ではでは、また次回。