Windowsでの開発関係の技術日誌

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に悪影響を与える可能が大きくあまりお勧めはできない。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバック URL

https://uturo2.nevernothing.jp/wsl2%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%a8%e4%bd%bf%e3%81%84%e6%96%b9/trackback/

関連リンク