wsl2でUbuntu入れてみた

# はじめに

Windows 10 2004 May 2020 Update が正式公開されたので入れてみました。
お目当てはwsl2。これでUbuntuが動くようになるまでのメモです。

# 環境

* Windows 10 1909
  * wsl でUbuntuをインストール済みの状態
  * Doker Desktopインストール済み

# やったこと

## Windows 10 2004 May 2020 Update 適用

メディアクリエーションツール```MediaCreationTool2004.exe``` をダウンロードして実行。
再起動後「wsl2を有効化するか？」と聞かれたので有効化する。

また、Doker Desktopから「wsl2がインストールされていないからHyper-VつかうかDocker止めるか選べや」
というようなことを言われ、釈然としない気持ちのまま一旦Dockerを止める方を選んだ。

## WSL 2 Linux カーネルの更新

wsl2の機能を試してみようと思ったら

```powershell
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
```
と言われたので、指定されたURLから```wsl_update_x64.msi```をダウンロードして実行。
これで上のメッセージは出なくなった。

## 既定のインストール バージョンを2に設定

これからインストールするディストリビューションのバージョンを2にする。

```powershell
PS C:\> wsl --set-default-version 2
```

現在の設定値は確認できないのかな？

## この時点でのディストリビューション一覧確認

```powershell
PS C:\> wsl --list --verbose
  NAME                   STATE           VERSION
* Legacy                 Stopped         1
  docker-desktop-data    Running         2
  docker-desktop         Running         2
```

現在はWindowsアップデート前に使っていたLegacyと、Docker Desktopによって作られた
2つのディストリビューションが存在する。wslコマンドを叩くとデフォルトで実行されるのが、
*マークのついている「Legacy」で、wslのバージョンは1。

## wsl2でUbuntuを入れてみる

[Microsoft Store](https://aka.ms/wslstore)を開くき、Ubuntuを選択してインストールボタンを押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617842/dde9af46-47b8-4591-a475-31cd8f5704e5.png)

しばらくしたら現れる起動ボタンを押すことでターミナルが開き、
ユーザ名とPasswordを言われるがままに入力するとインストール完了！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617842/2cbea06a-8f4c-df2c-f3a9-f0a90d25cc65.png)

## 再度ディストリビューションの一覧確認

```powershell
PS C:\> wsl --list --verbose
  NAME                   STATE           VERSION
* Legacy                 Stopped         1
  docker-desktop-data    Running         2
  docker-desktop         Running         2
  Ubuntu                 Running         2
```

Ubuntuが増えたけどデフォルトはLegacyのまま

## デフォルトデストリビューションの変更

```powershell
PS C:\> wsl --set-default Ubuntu
```
これを実行してからまたまたディストリビューションの一覧を確認する

```powershell
PS C:\> wsl --list --verbose
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  Legacy                 Stopped         1
  docker-desktop-data    Running         2
  docker-desktop         Running         2
```
デフォルトがUbuntuに変更された！

## バージョンも変更できるらしい

ということはLegacyも1から2に変更できるの？

```powershell
PS C:\> wsl --set-version Legacy 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
レガシ ディストリビューションは WSL 2 をサポートしていません。
```

まあそうだよね。

# おわりに

これでwsl2の環境が整いました。DockerもHyper-Vじゃなくてwsl2ベースになりました。
週末はこれで遊ぼう。

# 追記

インストールされるUbuntuのバージョン（2020.5.28時点）

```shell:
% cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
```
unameの結果 [^1]

```
% uname -a
Linux amaterasu 4.19.104-microsoft-standard #1 SMP Wed Feb 19 06:37:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
```
[^1]: ```amaterasu``` はWindowsのホスト名