WSL(Windows Subsystem for Linux)のバージョン2のインストールと更新方法です。これまでのレガシーとなるWSL1とどちらかの選択で利用できます。
はじめに
WSL(Windows Subsystem for Linux)のインストールは以前にWSLにLAMP環境を構築する記事の紹介の中で記述していました。「WSLでLAMP環境構築」
それから月日は流れWSLも現在バージョン2のWSL2となっています。
以前からのWSL1も選択して利用できるようになっていますが、WSL2が推奨されていて前バージョンからインストール内容について少し変わっているところもあるので改めて掲載します。
なのでWSL2のインストール方法をメインにWSL1とWSL2の切り替え方法についても説明します。
これから記載する内容はすべて公式サイトからの情報ですが、それに画像を加えて説明したものになります。
WSL2をインストールするための要件
WSL2のインストールは、x64システム(インテルやAMDなどのCISC系64bitシステム)では、Windows10のバージョン1903以降、ビルド18362以上である必要があります。
ビルド18362より前はWSL2をサポートしていないのでWindowsを更新してください。
WSLインストールのための設定
ここで記載するのは公式サイトの手動インストールの内容になります。
簡略化されたインストール方法も提供されていますが、Windows Insider Programに参加する必要があるので通常は手動インストールになるかと思います。
WSLを使えるようにするにはWindowsの設定を変更する必要があります。
公式サイトではすべてコマンドで設定を行う方法となっていますが、ここでは画面操作で設定を行います。
まずは「Windowsの機能」画面を開きます。
Windowsメニュー右にある検索バーに「Windowsの機能」を入力するとコントロールパネルにある「Windowsの機能の有効化または無効化」が結果に表示されます。
「Windowsの機能の有効化または無効化」をクリックして起動すると、機能の一覧が表示されます。
そこに表示されている「Hyper-V」と「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」にチェックをいれてください。
チェックをいれて有効にしたらWindowsを再起動すると設定は完了です。
Linuxカーネル更新プログラムパッケージ
「x64マシン用WSL2Linuxカーネル更新プログラムパッケージ」をダウンロードし、パッケージを実行します。
ダウロードファイル「wsl_update_x64.msi」を実行すると以下のインストールが始まります。
インストールが完了したら、次にLinuxをインストールする際の既定バージョンとしてWSL2を設定します。
PowerShellを開いて次のコマンドを実行してください。
PS C:\Users\hoge> wsl --set-default-version 2
完了したら以下が表示されます。
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
Linuxのインストール
選択したLinuxディストリビューションをインストールします。
LinuxはMicrosoft Storeからインストールします。
ここではUbuntu20.04をインストールします。
他にもUbuntu18.04やSUSE、Debianなどインストールすることができます。
インストールは思うより速く終わります。
インストールしたLinuxを初めて起動すると、コンソールウィンドウが開き、Linuxのユーザーアカウントとパスワードを作成するように求められます。
ここで入力するユーザーアカウントとパスワードはLinux独自のものとなります。
このユーザーはWindowsとの関連はありません。
つまりWSLで作成するユーザーとWindowsユーザーは別のものとなります。
これでWSLのインストールは完了です。
インストールされている各Linuxに割り当てられているWSLバージョンを確認するにはPowerShellで以下のコマンドを実行します。
PS C:\Users\birdy> wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Running 2
また、Linuxで利用されているWSLのバージョンを設定するには以下を実行します。
wsl --set-version <Linuxの名前> <バージョン番号>
<バージョン番号>を2から1へ変更することでいつでもWSL1に戻すことができます。
最後に
WSL1とSWL2はいくつかの違いがあります。
詳細は公式サイトを参照ください。
推奨されるだけあってWSL2のほうが高性能になっていますが、1つWSL1のほうが優れている点があります。
それは、OSファイルシステム間でのパフォーマンスです。
公式サイトでは特殊な理由がない限り複数のOS間でファイル操作しないことを推奨しています。
WSLのLinuxのホームディレクトリとWindowsのホームディレクトリは別にあり、最速のパフォーマンスで作業するには、それぞれのシステムでファイルを格納するように勧めています。
Linuxコマンドラインで作業しているときはLinux内で、Winodwsコマンドラインで作業している場合はWindows内でといった感じです。
パフォーマンスは落ちますが、お互いにファイルを参照することができます。
WindowsからLinuxファイルシステムを参照するのは、ネットワーク接続経由で行います。
例えばLinuxファイルシステム内のホームディレクトリは以下です。
\\wsl$\Ubuntu-20.04\home\<usernames>\
エクスプローラーから「\\wsl$」にアクセスするとネットワーク経由でアクセスできます。
LinuxからWindowsファイルシステム内のホームディレクトリは以下です。
$ cd /mnt/c/Users/<username>
それからLinuxからWindowsのアプリケーションを起動することもできます。
$ powershell.exe /c start .
このコマンドをLinuxで実行するとエクスプローラーが起動してLinuxのホームディレクトリを表示します。
また、Windows10でPower ShellやWSLのコマンドコンソールを使うときはWindows Terminalが便利です。