どうも、nippa です。
macOS 上に VMware / VirtualBox で Windows11 をインストールして、WSL を利用しよう と思い試行錯誤しました。
どうしても WSL の環境を用意する必要があったのですが、すんなりとはいかなかったの と、なかなか情報もなかったので、まとめて置こうと思います。
macOS 上で Windows + WSL の環境をつくる人もそういないと思いますが。
環境
- macOS 14.4
- Virtual Box 7.0
WSL のバージョンについて
WSL1 と WSL2 の違いですが、以下の通りです。
WSL1: Linux カーネルをエミュレートしており、Windows のファイルシステムと直接統 合されている。起動が早く、Windows と Linux 間のファイルのやり取りが速いが、ネ イティブの Linux カーネルではないため、完全な互換性がない。
WSL2: 実際の Linux カーネルを仮想マシン上で実行しており、Linux アプリケーショ ンの互換性が向上している。一方で、仮想化技術を使用するため、WSL1 に比べて起動 が少し遅く、Windows と Linux 間のファイルのやり取りが若干遅くなることがある。
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 の有効化をしていきます。
wsl のインストール
PowerShell を開いて、以下のコマンドを実行して wsl のコマンドをインストールし ます。
wsl --install
WSL のバージョンの設定
現在のところ、仮想環境の Windows では WSL1 のみが対応しています。Windows11 で はデフォルトがバージョン2もしくは、設定されていないので、バージョン1に設定 します。
まず、WAS のデフォルトのバージョンが設定されているかを確認します。
wsl -l -v
# 出力結果
Linux 用 Windows サブシステムにインストールされているディストリビューションはありません。
デフォルトをバージョン 1 にセットします。
wsl --set-default-version 1
# 出力結果
この操作を正しく終了しました。
以下のようなエラーが出る場合があります。この場合、Windows の Linux サブシステ ムが有効化されていないことが原因です。
WSL1 は、現在のマシン構成ではサポートされていません。
WSL1 を使用するには、"Linux 用 Windows サブシステム" オプション コンポーネントを有効にしてください。
エラー コード: Wsl/WSL_E_WSL1_NOT_SUPPORTED
有効化は「コントロールパネル」-「プログラム」-「プログラムと機能」-「Windows の機能の有効化または無効化」から「Linux 用 Windows サブシステム」にチェックを いれるか、下記コマンドで有効化し、マシンを再起動で解決できます。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
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 に対応するとこのような作業はなくなると思いますが、ま だしばらくは難しそうなのでこの方法を試してみてください。
ではでは、また次回。