Macに入れたWindows ARM64 InsiderPreview上でWSL2を動かそうと試みた話
はじめに
Mac上でWindowsを動かすといったことがIntel製CPUを搭載していたMacではBoot CampやParallels Desktopを使うことで容易に実現できていました。しかし、2020年秋に登場したMacシリーズでCPUがAppleSiliconへと変わりアーキテクチャがarm64に変わり。その影響でWindowsをMac上で動かすのが困難となっていましたが、先日Parallels Desktop 16がバージョン16.5にてAppleSiliconに対応しました。これでParallels DesktopはIntel Mac ・ AppleSilicon Mac両方へ対応したことになります。
現在、AppleSiliconのMacでPreview版Windows10が動作する段階まで来ています。まだまだ一部の環境でしか使用されていないarm64版Windows10ですが、Previewビルドにてx64 アプリのエミュレーションが実現[1]するなど着々と進化を遂げております。
一般的にライセンスを購入して使用できるようになるかはまだ定かではありませんが、現状arm Preview版のWindows10でWSL2をどこまで使えるのかを試してみました。
結論から述べると、現状の環境ではWSL1は起動しますが、WSL2は起動させることができませんでした。今回は検証作業の中でいくつか気になることや気付きがあったため記事として共有します。
検証環境
- macOS BigSurバージョン 11.3(ホストOS)
- Parallels Desktop 16 for Macバージョン 16.5.0
- Windows 10 on ARM Insider Preview OSビルド 21354.1(ゲストOS)
事前準備
Preview arm版Windows10の入手
Windows Insider Programに参加することで以下のページからPreview版のビルドを無料でダウンロードできます。
入手したWindowsイメージはVHDXファイルとなっており、Parallels Destopにて選択することで起動させることができます。
ParallelsDesktopは以下のページからダウンロードしてインストールできます。
ParallelsDesktopは有料のソフトですが、無料で14日間のトライアル版を使用できます。永久ライセンスはバージョンごとに買い切りとなっておりバージョンアップ時に買い直す必要があります。また現在はサブスクリプション形式でのライセンス購入もできるようです。
バージョン情報を確認
Mac上で仮想化したWindows10から見える情報はこのようになっております。
プロセッサとしてMac側のAppleSiliconが認識されており、問題なく動作しております。実装RAMは仮想マシンの設定から、4GBを割り当てておりしっかりと認識されています。Windows10 ProバージョンDevとして動作します。
全体的にネイティブに動作しているWindows10と比較するとアニメーションの描画時など少しもっさりするかなといった部分はありますが、基本的な操作は問題なく行えるくらいに快適に動作してます。
この環境にWSL2(Windows Subsystems Linux 2)を導入して動かせるか試していきます。
WSL2を導入する
WSLのインストールは最新のWindows Previewにおいてコマンド1つでインストールが可能になりました。
WSLの公式のドキュメントに日本語で詳しく説明があります。
WSL2を有効にするためには、仮想マシン周りの設定変更やWSL2のデフォルト化などの手順を踏まなければなりませんが、今後ワンライナーにより簡単にWSL2の環境が作れるようになるようです。便利ですね。
WSL2の有効化
Parallels DesktopでWindowsが起動したら管理者権限で起動したコマンドプロンプトを起動して以下のコマンドを実行します。
> wsl --install
これでWSL2が有効となりデフォルトとして設定されます。再起動後に有効化されるので、ここで一旦Windows10を再起動します。
再起動後、wslコマンドが有効になります。以下のコマンドを入力すると簡単なコマンドのヘルプが表示されます。
> wsl --help
これでWSL2が有効となり、ディストリビューションをインストールする準備が整いました。
WSL2にディストリビューションを追加する
WSLを有効にしただけではディストリビューションがインストールされていません。
# インストールされているディストリビューションをリスト表示
> wsl --list
Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。
ディストリビューションは Microsoft Store にアクセスしてインストールすることができます:
https://aka.ms/wslstore
今回は、UbuntuをWSL2のディストリビューションとしてインストールしてみます。以下のコマンドでインストールできるディストリビューションを表示しオプション-d
を指定してインストールします。
> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>'を使用してインストールします。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
# Ubuntu-20.04 LTS をインストール
> wsl --install -d Ubuntu-20.04
Ubuntu 20.04 LTSのインストールが開始されます。インストールが完了すると自動的に起動します。
起動する
WSL2にUbuntu 20.04 LTSがインストールできたので起動してみます。
起動まではうまくいきましたが、エラー表示がでてここから先に進みませんでした。
一部文字化けしているがエラーのよう
エラー解決に向けて試したこと
このままエラーで引き下がれないので、どうにか起動できないか試行錯誤してみました。
よくあるエラーとして、カーネルの更新がされていないというのがあるようです。そこで半信半疑ながらに公式のガイドを参考にカーネルの更新をしてみます。wsl --install
を実行したときにカーネルは更新されているのですが、念の為もう一度更新をインストールしてみます。
こちらのページ中段にあるダウンロードリンクからダウンロードしてインストールしてみるもエラー内容は変わらず...。
そこでエラーメッセージについて調べてみるとどうやら内部仮想化の部分が有効になっていない模様です。
【参考記事】
Paralles Desktopでは設定から「ネスト化された仮想化を有効にする」という項目を有効にする必要があるようです。
現在、Paralles Desktopの通常版(Standard Edition)を使用しているのですが、設定項目を探してみても該当項目は見当りませんでした。
参考記事を見るとここに項目があるはずだが...
少し古い情報となりますが、ネスト化された仮想化サポートはPro Editionでのみのサポートという情報があったため、勢いでPro Editionに変更して検証してみます。
こちらがPro Editionへアップグレードした後の設定画面になります。
オプションが現れず...
アップグレード前と比較して変わったところは、メモリの上限を拡張できるようになったことだけでネスト化された仮想化を有効にする設定は現れませんでした。
ゲストOS側のBIOS設定やHyper-Vを見直したりしたのですが、仮想化に関する設定は見当たらず、現状この環境にて仮想化を有効にするのは厳しそうといった状況です。
以前のバージョンではWSL2の動作が仮想化されたWindows10上にて実現できている例が見られたので、今後も引き続き検証していきたいところです。
補足: WSL1として設定する
本題はWSL2の実現なのですが、この環境でWSL1が動作することを検証中に確認できたので補足としてまとめます。
wsl --install
実行直後はWSL2がデフォルトとして設定されているため、以下のコマンドでWSL1をデフォルトのバージョンとして設定することでをWSL1として起動できます。
# バージョン1をデフォルトにする
> wsl --set-default-version 1
この状態でディストリビューションをインストールして起動することでWSL1として設定できます。
WSL1とWSL2の違いは以下のページでまとめられています。
おわりに
今回、WSL2をParallels Desktopに導入したWindows10 arm64 Insider Preview上で有効化できるのかを検証しました。結果としてはうまく動作させることができませんでした。まだWindows10がPreviewビルドであったり、Parallels DesktopがAppleSiliconに対応したばかりだったりとまだまだ技術面で課題があるように感じました。
本題からはそれるのですが、現在Ubuntu Desktopのarm版がUbuntu 20.04.2.0 LTS (Focal Fossa) Daily Buildとして公開されています。このイメージをParallels Desktopに導入することで仮想化したUbuntu DesktopをAppleSilicon上で使うことができます。こちらは問題なく動作検証できました。
需要がどのくらいあるかは未知数ですが、arm版のWindows10がMacbook上で快適に動作するようになったなどと興味深い結果が得られたので今後のアップデートにも注目していきたいところです。
最後まで読んでいただきありがとうございました。
参考
- M1 Mac正式対応の「Parallels Desktop 16.5」提供開始 - PC Watch
- M1搭載MacBook ProでWindowsアプリを動かす「Parallels Desktop」を試す | Business Insider Japan
- ParallelsでWindows 10のWSL2を使う - すがブロ
Discussion