Windows10上でLinuxを使用する(WSL2のインストール)

## 概要
Windows10にWSL2をインストールし、Linuxを動作させるための手順を記載する

### WSL2とは
Windows Subsystem for Linuxの略、Windows 10上で動作するLinuxサブシステム
参考 : [Linux 用 Windows サブシステムとは | Microsoft Docs](https://docs.microsoft.com/ja-jp/windows/wsl/about)
## 環境
Windows10
バージョン21H1(OSビルド19043,1826)

## 手順
### インストール
1. Powershellを管理者権限で起動する
2. `wsl -install`コマンドでインストールを行う
    ```
    PS C:\WINDOWS\system32> wsl --install
    インストール中: 仮想マシン プラットフォーム
    仮想マシン プラットフォーム はインストールされました。
    インストール中: Linux 用 Windows サブシステム
    Linux 用 Windows サブシステム はインストールされました。
    ダウンロード中: WSL カーネル
    インストール中: WSL カーネル
    WSL カーネル はインストールされました。
    ダウンロード中: Ubuntu
    要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
    ```
3. Windows10を再起動する
4. ユーザ名パスワードを入力する
    ```
    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: ← 任意のユーザ名を入力
    New password: 　　　      ← 任意のパスワードを入力
    Retype new password:     ← パスワードを再度入力
    passwd: password updated successfully
    Installation successful!
    ```

### アンインストール
1. エクスプローラのアドレスバーに`ms-settings:appsfeatures`と入力し、アプリと機能画面を開く
2. 「Ubuntu」と「Windows Subsystem for Linux Update」をそれぞれアンインストールする

### WSL2リセット
1. エクスプローラのアドレスバーに`ms-settings:appsfeatures`と入力し、アプリと機能画面を開く
2. Ubuntuを選択し[詳細オプション]を選択
3. [リセット]をクリック
4. 確認画面が出るので再度[リセット]をクリック
5. [リセット]ボタン横にチェックマークが出たらリセットが完了している

## 参考
### WSL2シャットダウン
`sudo shutdown -h now`はWSL上から実行できないのでPowershellから以下のコマンドを実行する
```
PS C:\WINDOWS\system32> wsl --shutdown
```

### WSL2のメモリ使用に制限を設ける
1. `C:\Users\<username>\`に`.wslconfig`ファイルを作成する
2. `.wslconfig`ファイルにメモリ制限を記載する
    ```
    [wsl2]
    memory=6GB
    ````
3. Powershellからwslを停止する
    ```
    PS C:\WINDOWS\system32> wsl --shutdown
    ```
4. WSL2(Ubuntu)を起動する
5. メモリ量を確認する
    ```
    $ free -h
                  total        used        free      shared  buff/cache   available
    Mem:          5.8Gi        77Mi       5.6Gi       0.0Ki       172Mi       5.5Gi
    Swap:         2.0Gi          0B       2.0Gi
    ```
### インストール時にディストリビューションを指定
1. 使用可能なディストリビューションの一覧を表示
    ```
    PS C:\WINDOWS\system32> wsl --list --online
    インストールできる有効なディストリビューションの一覧を次に示します。
    'wsl --install -d <Distro>' を使用してインストールします。
    
    NAME            FRIENDLY NAME
    Ubuntu          Ubuntu
    Debian          Debian GNU/Linux
    kali-linux      Kali Linux Rolling
    openSUSE-42     openSUSE Leap 42
    SLES-12         SUSE Linux Enterprise Server v12
    Ubuntu-16.04    Ubuntu 16.04 LTS
    Ubuntu-18.04    Ubuntu 18.04 LTS
    Ubuntu-20.04    Ubuntu 20.04 LTS
    ```
2. ディストリビューションを指定してインストール
    ```
    PS C:\WINDOWS\system32> wsl --install -d <Distribution Name>
    インストール中: 仮想マシン プラットフォーム
    仮想マシン プラットフォーム はインストールされました。
    インストール中: Linux 用 Windows サブシステム
    Linux 用 Windows サブシステム はインストールされました。
    ダウンロード中: WSL カーネル
    インストール中: WSL カーネル
    WSL カーネル はインストールされました。
    ダウンロード中: <Distribution Name>
    要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
    ```

### WSL上からWindowsのフォルダを参照する
```
ls /mnt/c/Users/<Windowsユーザ名>/Desktop/
```
### sudoでパスワードを省略する
1. visudoで使用されるエディタをviにする
    ```
    sudo update-alternatives --set editor /usr/bin/vim.basic
    ```
2. visudoを編集

    ```
    $ sudo visudo
    <username> ALL=(ALL) NOPASSWD: ALL ←　最下行に追加する
   ```