WSL2のインストールと使い方
WSL2とは?
WSLとはWindows Subsystem for Linuxの略で
Windows上でLinuxを動かすことができるMicrosoftが提供する機能。
最初にリリースされたWSL(以降WSL1と呼ぶ)と新しく提供されたWSL2が存在する。
WSL1もWSL2も実際のLinuxディストリビューションはMicrosoft Storeからダウンロードして使うことになる。
Linux環境とは言っても原則的にはShellによるコンソール操作のみで
GUIを動作させるには別途X-ServerをWindows側に用意する必要がある。
LinuxのGUIを使いたい場合はHyper-VやVirtualBox、VMWareなどを使ったほうがいいかもしれない。
WSL1とWSL2の違いは?
WSL1はLinuxの実行環境をLXCoreというサブシステムが提供していてLinuxのシステムコールをWindowsAPIの呼び出しに変換して動作していた。
その為機能に制限が多数存在し動作も遅いという問題もあった。
WSL2ではハイパーバイザーにより仮想マシンとしてLinuxカーネルを動作させている完全なLinux実行環境となる。
実質、Hyper-V上でコンソールのみで動作するLinuxをインストールしたのとほぼ同じようなものとなる。
ここではWSL2をインストールして使ってみる。
なお、Linuxの基本知識はあるものとする。
WSL2のインストール
WSL2をインストールする。
〇WSL1(Windows Subsystem for Linux)をインストールする。
Windowsの「Linux 用 Windows サブシステム オプション機能」を有効にする。
管理者としてPowerShellを開き、以下のコマンドを実行する。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
そしてマシンを再起動する。
〇インストールしたWSL1をWSL2に更新する。
WSL2に更新するにはWindows10がバージョン1903以降でビルド18362以上である必要がある。ProでもHomeでもいい。
バージョンが条件に満たない場合は最新のバージョンにアップデートする。
条件を満たせば「仮想マシン プラットフォームのオプション コンポーネント」を有効にする。
再び管理者としてPowerShellを開き、以下のコマンドを実行する。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
そしてマシンを再起動する。
〇WSL2をデフォルトのバージョンに設定する。
再び管理者としてPowerShellを起動して以下のコマンドを実行する。
wsl --set-default-version 2
しかし、多くの場合はこのときにエラーが発生する。
その場合はこちらのサイトを開き「download the latest WSL2 Linux kernel」のリンクをクリックしてwsl_update_x64.msiをダウンロードして実行/インストールする。
そして再度、上記のコマンドを実行する。
Linuxディストリビューションをインストールする。
Microsoft Storeを開き、WSL、Linuxなどのワードで検索して好きなLinuxディストリビューションをインストールする。
Debian、Ubuntuあたりが無料で情報量もあるので妥当かと。
他は有料のものもあるので注意。
ここではDebianをインストールしたとする。
インストールしたディストリビューションをはじめて起動すると
コンソールが開き、新しいユーザとそのパスワードを作成するので入力してくれ、と表示がでる。
ここでのユーザ/パスワードはLinux上でのみ有効なものでWindowsやMicrosoftアカウントなどには関係しないので好きなものを入れるといい。
もちろんパスワードは忘れないように。
WSL2を実行する
Windowsのメニューから実行したいディストリビューションを起動するか、
コマンドプロンプトなどで「wsl」を実行するとデフォルトに設定されているディストリビューションが起動する。
また、Windows Terminalが先にインストールされていれば自動的にWindows Terminalにディストリビューションの実行メニューが追加される。
WSLとWindowsのファイルの連携
WSLのコンソールからdfコマンドを実行すればWSL側からWindowsのファイルシステムがどのように見えるかがわかる。
具体的には C:ドライブは /mnt/c/ としてマウントされている。
cd /mnt/c/ とすることでWSL側からWindowsのファイルを操作することができる。
USBメモリやSDカードなどのリムーバブルなデバイスは別途mount操作をしないと見えない。
Windows側からWSL側のファイルはエクスプローラーを開きパスに「\\wsl$」と入力することでまずインストールしたディストリビューションが表示され、そこからWSL側のファイルを操作できる。
ただ、Windows側からWSL側のファイルを書き換えるのはLinuxに悪影響を与える可能が大きくあまりお勧めはできない。