WSL2でUbuntuを使えるようにする

参考


Windows 10のWLS2でUbuntu20.04を使えるようにします。

Windows 10のアップデート

WSL2を使うにはWindowsのバージョン 1903以降、ビルド 18362以上である必要があります。
バージョンを確認するには「Winキー+Rキー」で『ファイル名を指定して実行』を開き、
名前にwinverを入力して「OK」をクリックします。

Windows Updateで最新化できれば良いですが、更新が来ない場合もあるので
その場合は更新アシスタントを利用します。
https://www.microsoft.com/ja-jp/software-download/windows10

WSL2をインストールする

管理者権限でPowerShellを開いて、以下を実行します。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ここまで実行したら一度再起動します。

再起動後、再度PowerShellを管理者権限で開き、以下コマンドを実行します。

wsl --set-default-version 2

もしカーネルの更新が必要という旨のメッセージが表示された場合は
以下を参考にカーネルの更新をしてから再実行します。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel

Ubuntuのインストール

Microsoft Storeで「Ubuntu」と検索し、Ubuntu20.04をインストールします。
その後、Ubuntuを起動すると初期設定が走るので、アカウント設定等をします。

デフォルトではaptでの取得元が海外になっているので、以下コマンドで日本に変更します。

sudo sed -i -e "s/js.archive.ubuntu.com/jp.archive.ubuntu.com/g" /etc/apt/sources.list

ここまででWSL2 でUbuntuを使えるようになりました。
ですが、デフォルトではCドライブにUbuntu用の領域をとってしまうので、Dドライブに移したいと思います。

WSLの場所を移動させるツール『LxRunOffline』を利用します。
まず、GitHubより圧縮ファイルをダウンロードして解凍しておきます。(LxRunOffline-vX.X.X-mingw.zip)
https://github.com/DDoSolitary/LxRunOffline/releases

次にWSLを配置するフォルダを作成しておきます。
本例ではD:\wslを作ります。

PowerShellを管理者権限で開き、以下コマンドで先ほど作成したフォルダに権限を付与します。

icacls D:\wsl /grant $env:USERNAME":(OI)(CI)(F)"

そのままPowerShellでLxRunOfflineを解凍したフォルダに移動し、以下コマンドを実行します。

net stop LxssManager
.\LxRunOffline.exe move -n Ubuntu-20.04 -d d:\wsl\Ubuntu-20.04
net start LxssManager

これでUbuntuのインストールは完了です。
もしアンインストールする場合は以下のコマンドを実行してください。

wsl -t Ubuntu-20.04
.\LxRunOffline.exe ui -n Ubuntu-20.04

※補足

WSL2配置の場所を移動させなくても/mnt/d/にDドライブがマウントされているのでDドライブを利用することは可能です。
ただし/mnt/配下のWindowsディレクトリへのアクセスは時間がかかるので、WSLの配置場所を変更する方がおススメです。

Ubuntu側からWindows側のフォルダで権限変更できるようにする

Ubuntu側では/mnt/内にWindows側のフォルダがあるので参照はできますが、
デフォルトではchmodでの権限変更ができません。

もしWindows側のフォルダ・ファイルの権限変更をしたい場合は/etc/wsl.confを作成して以下を記載します。

[automount]
options = "metadata"