M1 MacでWSLを動かしたい

M1 Macをメインマシンとして使っています。普段のお仕事は当然macOS上でやっているわけですが、たまにWSL(Windows Subsystem for Linux)が使いたくなります。なんでだよ!

いちおう理由はありまして、プログラミングスクールです。

弊社として運営協力をしつつ、講師もやっています。受講者が使うPCはWindowsの人もあり、Macの人もありです。スクールでPCを準備しているのではなく、自前のものを持ってきてもらっているので。いちおうスクールでも貸し出し用はありのですが、家でも定期的に学習しないとプログラミングは身につかないですしね。なので、自前のPCでやっていただく必要があります。

中級クラス以上では、Windowsの人にはWSLを入れてもらうことにしました。そうすることで、少しはMacの人と似たような環境で学習できるようになります。こちらの説明も多少は楽になるし、プログラミングを学んでいずれ仕事をしようというのであれば、いずれはWSLに慣れないといけない時期が来ます。

で、講師側としてもWSL環境が欲しくなります。いちおう、事務所のデスクトップPC(Windows 11)にリモートデスクトップで入れるようにしているので、その環境を使うこともあります。
でも、普段持ち歩いているM1 Macでもなんとか動かしたい!

まずはWindowsを動かす

まず、M1 Mac上でWindowsが動いていることが前提になります。ARM版のWindowsは売っていないのですが、Insider Previewを使う方法や、ISOをダウンロードする方法もあります(ネットで調べると出てくるでしょう)。ライセンスキーはx64と同じなので、Windows 10 Proのライセンスキーを購入すれば良いでしょう(Windows 10のライセンスキーで、Windows 11のライセンス認証が可能です)。

Mac上でWindowsを動かすために、Parallelsも必要です。サブスクリプションを契約しているので、Parallels Desktop Pro Editionを使用しています。

WSL2かWSL1か

WSLは最新のWSL2と、以前使われていたWSL1があります。
WSL2は仮想マシンを使って本物のLinuxカーネルを動かしているので、本物のLinuxが動きます。一方、WSL1はWindowsカーネル上でLXCoreというサブシステムを動かし、その上でLinux上で動作するプログラムを動かしているだけです。

M1 Mac上のWindowsでは、少なくとも現時点ではWSL2は動きません。Mac上のWindowsが既に仮想マシンで動作しており、その上でさらに仮想マシンを動かすというのが、Parallelsでは無理なようです。
ただ、WSL1ならM1 Mac上のWindowsでも動きます。WSL2とWSL1の構造の違いで、WSL1はLinuxもある意味Windowsアプリの1つのようなイメージで動くので、それが功を奏しているわけですね。

WSL1を動かす

管理者権限でPowerShellを起動して、下記のコマンドを実行します。

wsl --install
wsl --set-default-version 1

あとは、Microsoft StoreでUbuntuなどをインストールすればOKです。

まとめ

前置きが長かったわりに、WSL1の動かし方は短かったのですが、それだけWSLは簡単に動くようになっているということです。

Windowsユーザーの受講者の方にはWSL2を入れていただくので、私のWSL1とは結局違う環境になってしまうのですが、スクールで扱う程度であればそれほど大きな差はないと思うし、Windows TerminalでPowerShellとWSL上のUbuntuを切り替えて使っていく感じは同じなので、授業中の操作デモなんかに使っていけるでしょう。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。