Windows 10にWSL 2をインストールしてUbuntuを動かすまで
WSL 2の一般提供が開始
Windows 10 May 2020 Updateによって、WSL 2の一般提供が始まりました。
www.publickey1.jp
今後、開発環境の用意において第一の選択肢になることが考えられます。
GPUのサポートも表明していることから、CUDAを用いる機械学習系の分野への影響も大きくなるでしょう。
WSL 2のインストール
今回のアップデートに合わせて私のWindows 10をクリーンインストールしたので、その状態からWSLの環境を整備するために行ったことを記録します。
Windowsの機能の有効化
まずはWSL 2を動かすために必要なWindowsの機能を有効化する必要があります。
管理者権限で実行されたPowershellで以下のコマンドを実行します(以下は1行のコマンドです)。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform
実行ができたら再起動します。
Powershellでwsl
と実行し、以下のように表示されれば成功です。
Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。 ディストリビューションは Microsoft Store にアクセスしてインストールすることができます: https://aka.ms/wslstore
Ubuntuのインストール
これでWSLの環境は整ったわけですが、OSを入れなければ意味がありません。今回はUbuntuをインストールします。
Microsoft Storeを起動し、「Ubuntu」と検索します。すると以下のような結果が出ると思います。
無印のUbuntuは最新のLTSで、20.04 LTSと18.04 LTSはそれぞれ特定のバージョンです。
今回は20.04 LTSを選択しました。画面に従ってインストールを行います。
以下のような画面になればインストール成功です。「起動」を押して初期設定に進みます。
Ubuntuの初期設定
「起動」を押してしばらく待つと以下のような画面が現れるのでユーザ名とパスワードを入力します。なおパスワードの入力時、打った文字が表示されませんが、気にせず入力してEnterを押します。
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: (Ubuntuで新しく作成するユーザのユーザ名を入れる) New password:(上のユーザに設定するパスワードを入れる) Retype new password:(上と同じパスワードを再度入れる)
入力後、最後の行が以下のような感じになっていれば成功です。
ユーザ名@デバイス名:~$ _
次回以降の起動は、Powershellでwsl
と実行するか、スタートメニューからUbuntu 20.04 LTSを選択することでできます。
WSLからWSL 2へ
これでUbuntuを動かす環境ができたわけですが、実はこれだけではWSL 2ではなく、従来のWSLが動いています。
それではUbuntuのウインドウを閉じて、試しにPowershellで以下のコマンドを実行してみましょう。
wsl -l -v
以下のような出力が返ってくるはずです。
NAME STATE VERSION * Ubuntu-20.04 Stopped 1
Ubuntu 20.04のVERSIONが1になっています。これはWSL 2ではなく従来のWSLで動作していることを表しています。
そのためこれが2になるようにする必要があります。
WSL 2を利用するには、Linux カーネルを手動で更新する必要があります。Linux カーネルを以下でダウンロードします。
aka.ms
.msiなファイルがダウンロードできたら、画面の指示に従ってインストールを行います。
インストールができたら、Powershellで以下のコマンドを実行し、WSL 2に切り替えます。私の環境で3分ぐらいかかったのでお茶を汲みに行きましょう。
wsl --set-version Ubuntu-20.04 2
再度バージョンを確認し、以下のようになっていれば成功です。
> wsl -l -v NAME STATE VERSION * Ubuntu-20.04 Stopped 2
インストール済みパッケージの更新
上までの状態で、WSL 2上でUbuntuが使える状態になりました。ただしセキュリティ等の観点からパッケージを更新しておく方が良いでしょう。
デフォルトではパッケージを取得するサーバーは *.ubuntu.com となっていますが、海外なので(日本からだと)時間がかかります。
そのため早いサーバーが自動で選択されるように設定を変更しましょう。
まずはUbuntuにログインし、 /etc/apt/sources.list にある既存の設定ファイルのバックアップを取ります。パスワードが求められるので、先ほど設定したものを入力しましょう。
sudo mv /etc/apt/sources.list /etc/apt/sources.list.org
次に以下のコマンドで、サーバーを自動選択する設定を /etc/apt/sources.list に書き込みます。
echo deb mirror://mirrors.ubuntu.com/mirrors.txt focal main restricted universe multiverse | sudo tee -a /etc/apt/sources.list echo deb mirror://mirrors.ubuntu.com/mirrors.txt focal-updates main restricted universe multiverse | sudo tee -a /etc/apt/sources.list echo deb mirror://mirrors.ubuntu.com/mirrors.txt focal-backports main restricted universe multiverse | sudo tee -a /etc/apt/sources.list echo deb mirror://mirrors.ubuntu.com/mirrors.txt focal-security main restricted universe multiverse | sudo tee -a /etc/apt/sources.list
これでサーバーの設定は完了です。以下のコマンドでパッケージを更新しましょう。時間がかかるのでお茶を汲みに行きましょう。
sudo apt update
sudo apt upgrade -y
おわりに
これでUbuntu on WSL 2の環境が整いました。あとは煮るなり焼くなりです。
私のおすすめは Windows Terminal の導入です。タブが使えるのと、カスタマイズが豊富なのが大きなメリットです。
www.microsoft.com
楽しくUbuntuライフを送りましょう!