Windows11にWSL2をインストールします。Win10とWin11ではインストールの方法が違うので注意が必要です。また、ディストリビューションの切替えや、linuxからwindowsのファイルへのアクセス方法などについても説明します。
この記事にはdockerについての記述はありません。単純にWSL2をWindows11にインストールしたいという方が参考にして下さい。
なお、Windows11 ProにUbuntu 20.04 LTSをインストールします。
1. Windows10へのWSL2のインストール
Windows10へのインストールについては詳しい説明は行いませんが、主に以下の手順で実行します。
- 「Linux用Windowsサブシステム」「仮想マシン プラットフォーム」を有効にす
- Linuxカーネルをダウンロードし、アップデートする。
これに対して、Windows11へのPowerShellでコマンドを実行するだけでインストールが可能であり、手順がシンプルです。
また、Windows11へのインストールでは、「Linux用Windowsサブシステム」「仮想マシン プラットフォーム」を有効にしたままでは、インストールできないので、逆に無効であることを確認する必要があります。
2. Windows11へのWSL2のインストール
Windows11へのWSL2のインストール手順を説明します。
(1) 「Linux用Windowsサブシステム」の無効をチェック
「Linux用Windowsサブシステム」「仮想マシン プラットフォーム」は無効にした方が無難です。ネット上では無効ではなく、有効にするという情報も多くみられますが、自分は無効の設定でインストールできなかったことはありません。
一方、自分の場合は、最初に試した時に有効ではインストールできなかったので、それ以後、いつも無効にしてインストールするようにしています。設定手順は以下の通りです。
- [Windowsのスタートボタンを右クリック]→[設定]→[アプリ]→[オプション機能]→[Windowsのその他の機能]
- 「Linux用Windowsサブシステム」「仮想マシン プラットフォーム」の2箇所のチェックを外し、無効にしてください。
(2) PowerShellからインストール
Windows11からは、Windowsターミナルが標準で使用できますので、WindowsターミナルからWindows PowerShellを起動してみましょう。
- [Windowsのスタートボタンを右クリック]→[ターミナル(管理者)]により、Windows PowerShellを起動。
- 「wsl --install」を実行する。
「wsl --install」を実行すると、インストール時点で最も新しいUbuntuのLTS版がインストールされます。
wsl --install
もし、他のバージョンのディストリビューションをインストールしたい場合には、まず、インストール可能なディストリビューションを確認します。
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
そして、上記のリストがインストール可能なディストリビューションの一覧です。そして、例えばUbuntu-20.04をインストールしたいのであれば、以下のコマンドを実行します。
wsl --install -d Ubuntu-20.04
インストール可能な現在のUbuntuの最新版は20.04なので、「wsl --install -d Ubuntu-20.04」でお「wsl --install」でも、20.04がインストールされますが、インストールされたディストリビューションを確認するコマンド「wsl -l -v」を実行したとき、「wsl --install -d Ubuntu-20.04」では「Ubuntu-20.04」と表示され、「wsl --install」では「Ubuntu」と表示されます。
つまり、「Ubuntu 20.04」のようにバージョンが分かるnameにしたい場合には「wsl --install -d Ubuntu-20.04」を使います。nameにカーネルのバージョンが表示されるので明快です。
ただし、後でカーネルのバージョンを更新しても「wsl -l -v」によるnameの表示バージョンが変わらないので注意する必要があります。つまり、具体的な例は後述しますが、「wsl -l -v」による表示と実際のバージョンに食い違いが生じます。例えば将来「Ubuntu 22.04 LTS」に更新する場合には、WSL2の機能を使って新たに「wsl --install -d Ubuntu-22.04」を実行し、切り替える方法を取ることになります。
一方、「wsl --install」でインストールしたubuntuには「wsl -l -v」ではバージョンが表示されません。一目でバージョンを確認することはできませんが、Linuxの機能を使って「Ubuntu 22.04 LTS」にアップグレードしてもnameが「ubuntu」なので、表示との食い違いは生じません。
(3) 再起動とユーザー登録
インストールを反映させるためには、再起動が必要です。再起動を行うと、UbuntuのコンソールWindowがポップアップ表示され、username、パスワードの入力を促されます。
このアカウントはsudo
コマンドを実行できます。また、wsl起動時には、自動的にこのアカウントによりログインします。なお、sudoコマンドを実行するためのパスワードはユーザー登録で設定したパスワードを使います。
usernameとパスワードを入力すればWSL2のインストール完了です。ユーザーフォルダは以下の場所に作成されます。[username]の部分は先ほど登録したusernameです。
\Ubuntu\home\[username]
(4) 「Linux用Windowsサブシステム」の有効をチェック
正常にインストールされたかどうか確認してみましょう。インストール前に無効にした「Linux用Windowsサブシステム」「仮想マシン プラットフォーム」の設定が、有効になっていればインストール完了です。
たまに有効にならない場合があるので、その場合は有効にして、再起動してください。私の場合は「Linux用Windowsサブシステム」だけが無効になっていたことがありました。
- [Windowsのスタートボタンを右クリック]→[設定]→[アプリ]→[オプション機能]→[Windowsのその他の機能]
- インストール前は無効だった「Linux用Windowsサブシステム」「仮想マシン プラットフォーム」にチェックが入っており、設定が有効であることを確認する。
(5) 実行中のUbuntuを確認
実行中のUbuntuを確認するには、PowerShellより以下のコマンドを実行します。「wsl --list --verbose」でも「wsl -l -v」でもどちらでもかまいません。
wsl --list --verbose
wsl -l -v
すると、以下のように表示されます。「wsl --install -d Ubuntu-20.04」でインストールした場合には、NAMEが「Ubuntu」ではなく「Ubuntu-20.04」となります。
なお、STATE のRunningは動作している状態であることを示し、VERSIONの2は、WSLではなくWSL2であることを示します。
NAME STATE VERSION
* Ubuntu Running 2
なお、このwslコマンドは、この後に説明するwsl(Ubuntu)の起動画面では実行できないので注意してください。Ubuntuの画面で実行すると「Command 'wsl' not found, but can be installed with: sudo apt install wsl」と表示されますが、Ubuntuにwslというコマンドは存在しないので、sudo apt install wslによって、wslをインストールすることはできません。
3. Ubuntuの起動(login)
Ubuntuの起動(login)方法を3通り紹介します。
(1) Windowsスタートメニューより起動
Windowsスタートメニュの[全てのアプリ]よりUbuntuを起動します。カレントディレクトリは以下のUbuntuのユーザーフォルダとなります。
\Ubuntu\home\[username]
なお、このとき、Ubuntuの実行画面のカーソルの左側は「~$」と表示されます。この「~」の部分はカレントディレクトリであることを示しています。
なお、以下のコマンドを実行すると、ルートディレクトリである「\Ubuntu」に移動します。
cd /
「wsl --list --verbose」を実行する場合には、別途PoweShellを起動する必要があります。
(2) PowerShellより実行
ターミナルを起動し、PowerShellから「wsl」を実行し、Ubuntuを起動します。
wsl
カレントディレクトリは、Windowsのユーザーフォルダとなります。以下の[username]は、Windowsのusernameですので、Ubuntuに登録したusernameではありません。
C:\Users\[username]
Ubuntuで登録した[username]のディレクトリ(ホームディレクトリ)で起動したい場合は次の様にします。
wsl ~
ユーザーを指定して起動するにはuオプションを利用します。例えば[user_name]に「root」を指定するとルートディレクトリである「\Ubuntu」で起動します。
wsl -u [user_name]
起動の場所を指定する他の方法として、PowerShellの[右上の「v」]→[設定]→[Ubuntu]→[開始ディレクトリ]にて設定できます。
なお、開始ディレクトリの設定で、開始ディレクトリを「~」と設定しても、Windowsのホームディレクトリで起動してしまいます。Ubuntuのディレクトリで起動したい場合は、例えば「\\wsl$\Ubuntu\home\[username]
」のように指定しなければならないので注意しましょう。
(3) Windows ターミナルより実行
[Windowsスタートボタンを右クリック]→[ターミナル]により、PowerShellを起動し、上部タブの右側の「v」をクリックし、Ubuntuを選択する。
この場合も、PoewShellから起動したときと同様に、カレントディレクトリはWindowsのユーザーフォルダとなります。
では、せっかくUbuntuを起動したので、Ubuntuのバージョンを確認してみましょう。「cat」コマンドにより「/etc/」フォルダに入っているテキストファイル「issue」を表示することで確認できます。
ターミナル上で「cat /etc/issue」を実行すると、Ubuntu 20.04 LTSがインストールされていることが分かります。
「wsl -l -v」では、NAMEの表示とインストールバージョンと表示が食い違うことがありますが、この方法で確認すれば、実際のインストールバージョンを確認することができます。
cat /etc/issue
Ubuntu 20.04 LTS \n \l
4. Ubuntuのlogout
Ubuntuのlogoutは、Ubuntuを起動した状態から、「exit」を実行します。
exit
しかし、exitによってlogoutしただけでは、UbuntuはWindows上で起動したままになっています。この状態で、以下のコマンドを実行してみましょう。UbuntuのSTATEはRunningです。
wsl --list --verbose
NAME STATE VERSION
* Ubuntu Running 2
5. Ubuntuの終了と起動
UbuntuをWindows上での稼働を終了するには、PoerShellから「wsl -t [ディストリビューション名]」や「wsl --shutdown」を実行します。
「wsl -t [ディストリビューション名]」の[ディストリビューション名]の部分はディストリビューションのnameを指定します。(「wsl --terminate [ディストリビューション名]」でも同じです。)
wsl -t Ubuntu
wsl --terminate Ubuntu
また、複数のアプリケーションが起動している場合に、全てのアプリケーションを終了させる場合には、「wsl --shutdown」を実行します。
wsl --shutdown
「wsl --list --verbose」を実行すると、今度はSTATEがStoppedの状態になりました。
wsl --list --verbose
NAME STATE VERSION
* Ubuntu Stopped 2
なお、終了したUbuntuを再び起動するには、「3. Ubuntuの起動(login)」の手順によりloginすれば、起動することができます。起動とloginは同時に実行されます。
「wsl --list --verbose」によりSTATEがRunningの状態に戻っていることが確認できます。
6. 複数のディストリビューションのインストール
複数のディストリビューションをインストールする場合には、ディストリビューション名を指定してインストールを実行します。インストールが終了すると、そのディストリビューションにloginするためのusernameとパスワードを求められるので、入力します。
wsl --install -d Ubuntu-18.04
それでは、「wsl --list --verbose」により、確認してみましょう。「Ubuntu-18.04」はRunningの状態ですが、Ubuntuの前に「*」が表示されており、既定のディストリビューションはUbuntu-18.04ではなく、Ubuntuです。
wsl --list --verbose
NAME STATE VERSION
* Ubuntu Stopped 2
Ubuntu-18.04 Running 2
既定のディストリビューションを変更するには、「wsl --set-default Ubuntu-18.04」を実行します。--setと-defaultの間には空白がないことに注意してください。
wsl --set-default Ubuntu-18.04
今度は、Ubuntu-18.04が既定のディストリビューションになりました。
wsl --list --verbose
NAME STATE VERSION
* Ubuntu-18.04 Running 2
Ubuntu Stopped 2
なお、[Windowsのスタートボタン]→[全てのアプリ]には、「Ubuntu」だけではなく、「Ubuntu 18.04 LTS」が追加されます。
また、Windows ターミナルを再起動すると、Windows ターミナルの上部タブの右側にある「v」にも「Ubuntu-18.04」が追加されます。
7. 特定のディストリビューションのアンインストール
特定のディストリビューションをアンインストールするには、そのディストリビューションを終了し、アンインストールします。
ディストリビューションの終了は、すでに説明した通り、「wsl --shutdown」あるいは「wsl --terminate Ubuntu-18.04」
wsl --shutdown
wsl --terminate Ubuntu-18.04
ディストリビューションを指定してアンインストールします。
wsl --unregister Ubuntu-18.04
以下、Ubuntu-18.04がアンインストールされていることが確認できました。
wsl --list --verbose
NAME STATE VERSION
* Ubuntu Stopped 2
なお、Windows ターミナルを再起動すると、Windows ターミナルの上部タブの右側にある「v」にインストールされていた「Ubuntu-18.04」も削除されます。
一方、[Windowsのスタートボタン]→[全てのアプリ]には、PCを再起動しても「Ubuntu 18.04 LTS」は削除されないので、[設定]→[アプリ]→[アプリと機能]からアンインストールします。
8. UbuntuからWindowsのデータにアクセス
UbuntuからWindowsのデータにアクセスする場合は、「/mnt/c」をアクセスするフォルダの頭に追加します。「/c」はcドライブであることを示します。
例えば、次のように実行すればcドライブのルートディレクトリに移動することができます。
$ cd /mnt/c
この状態からUbuntuのルートディレクトリである「Ubuntu」に戻るには、「cd /」を実行します。
cd /
9. WindowsからUbuntuのデータにアクセス
WindowsからUbuntuのデータにアクセスすることも可能です。
(1) PowerShellからのアクセス
PowerShellからアクセスする場合は、「\wsl$\」をアクセスするフォルダの頭に追加します。
例えば、PowerShellで次のように実行すればUbuntuのルートディレクトリである「Ubuntu」に移動することができます。この「Ubuntu」は「wsl -l -v」実行時のNAMEに表示される
cd \\wsl$\Ubuntu
この状態からWindowsのcドライブのルートディレクトリに移動するには「cd c:\」を実行します。
「cd \」ではWindowsのルートディレクトリに戻れないことに注意する必要があります。
cd c:\
(2) エクスプローラからのアクセス
WSL2をインストールすると、WindowsのエクスプローラにLinucxが追加されるため、データの扱いが非常に楽です。(下図参照)

10. rootのパスワード
初期設定ではrootのパスワードは設定されていません。この状態では「su」コマンドが実行できません。そこで、「sudo passwd root」でrootのパスワードを設定します。
sudo passwd root
11. あとがき
これで、ディストリビューションやデータの扱い方について、WSL特有の部分が分かるようになったのではないでしょうか。