WSLgでUbuntuを使えるようにするには

WSLgの世界へようこそ!

WSLg動作の前提条件

Windows 10 ビルド 19044 以降 または Windows 11 である必要があります。

WSLgとは

WSL2とWSLgについて簡単に説明します。WSL2は、仮想化技術を活用して実際のLinuxカーネルを使用しています。これにより、WSL2以前のバージョンであるWSL1よりも高速に動作し、Linux起動時のメモリ消費量が少なく済むため、より高速に起動できるようになっています。一方、WSLgは、WSL2の新機能の1つであり、Windows 11またはWindows 10(特定バージョン/ビルド以降)でのみ使用できます。WSLg(Windows Subsystem for Linux GUI)は、Windows上でLinux GUIアプリケーションを実行するための仕組みといえます。
一般的な仮想環境では、WindowsとLinuxは完全に隔離された環境と言えます。一方、WSLgでは、WindowsとLinuxを統合し、LinuxをWindowsと同じ使い勝手で利用することを目的に設計されています。たとえば、LinuxのGUIベースのアプリがWindows上でシームレスに動作します。ただし、現時点(2024年1月)のWSLgでは、Windows側の日本語IMEが利用できない制約があるため、WSL2に導入したLinuxディストリビューション側で日本語入力を対応させる必要があります。

本稿では、WSLgでUbuntu 22.04 LTSが利用できるようにするところまでを紹介します。

WSLgをインストールしよう

Windowsターミナルを管理者権限で起動します。
①タスクバーの検索フィールドに「ターミナル」と入力します。
②現れた検索結果の「ターミナル」を右クリックします。
③表示されたメニューの「管理者として実行」をクリックします。Windowsターミナル(ターミナル)が管理者権限で起動されます。

ターミナルでは図のように、コマンドの入力を促すプロンプトが表示されています。Windows PowerShellのプロンプトです。

WSLg環境の初期化をしよう

利用可能な Linux ディストリビューションの一覧を確認するには、以下に示すように「wsl –list –online」または「wsl -l -o」と入力します。
下のコマンド実行結果で、「Ubuntu」の行に”*”マークがついているのは、この後述べる「wsl –install」コマンドを実行した際の、デフォルトでインストールされるディストリビューションが「Ubuntu」であることを表しています。

PS C:\Users\win> wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
既定の分布は ' * ' で表されます。
 'wsl --install -d <Distro>'を使用してインストールします。

  NAME                                   FRIENDLY NAME
* Ubuntu                                 Ubuntu
  Debian                                 Debian GNU/Linux
  kali-linux                             Kali Linux Rolling
  Ubuntu-18.04                           Ubuntu 18.04 LTS
  Ubuntu-20.04                           Ubuntu 20.04 LTS
  Ubuntu-22.04                           Ubuntu 22.04 LTS
  OracleLinux_7_9                        Oracle Linux 7.9
  OracleLinux_8_7                        Oracle Linux 8.7
  OracleLinux_9_1                        Oracle Linux 9.1
  openSUSE-Leap-15.5                     openSUSE Leap 15.5
  SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
  SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
  openSUSE-Tumbleweed                    openSUSE Tumbleweed

まず、WSLgの実行環境を初期化するために、以下のコマンドを実行します。

wsl --install

この操作により、Linuxに最適化された軽量仮想マシン、WSL用カーネル、GUIを表示する機能などが読み込まれて初期設定されます。また、「Ubuntu 22.04」がインストールされます。下のように、コマンド引数にディストリビューションを指定することも可能です。

wsl --install <ディストリビューション名>

途中で「ユーザアカウント制御」の画面が表示されたら[はい]を押します。

以下はコマンド実行時の出力結果です。

PS C:\Users\win> wsl --install
要求された操作には管理者特権が必要です。
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Ubuntu
Ubuntu はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

ここで上記メッセージの通り、Windowsを再起動します。
再起動中は、「更新が進行中です」等のメッセージが表示されるでしょう。

再起動の完了後、再びWindowsにログインすると、ターミナルが自動的に起動されます。
「Linux用 Windowsサブシステムが以前のインストールを再開して…」と表示された後、下の図の状態に遷移します。

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: 

「Enter new UNIX username: 」の行に、任意のユーザ名を入力します。ここでのユーザ名とは、Linuxシステムのユーザ名であり、Windowsにサインインするときのアカウントとは別物なので、ご注意ください。Windowsのアカウント名と同じにする必要はありません。
続いて2回、パスワードの入力を求められます。Linux全般的にターミナルからのパスワード入力では、”*”など文字が何も表示されません。
以下に、ユーザ名とパスワードを入力して、プロンプトが表示されるまでを示します

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: linux
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/linux/.hushlogin file.

コマンド「cat /etc/lsb-release」を実行して、ディストリビューションを確認します。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"

「DISTRIB_DESCRIPTION=”Ubuntu 22.04 LTS”」の行の記述によって、22.04 LTSであることが分かります。

次に、新しいターミナルを起動して、Windows PowerShellのプロンプトから「wsl -l -v」を実行してみます。WSLのバージョン2(WSL2)が実行されています。

PS C:\Users\win> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

これで、Ubuntu 22.04のインストールは完了です。

Ubuntuでは、次の二つのコマンドを実行することにより、インストールされているソフトウェアをまとめて最新にすることができます。

sudo apt update
sudo apt -y upgrade

上記の”sudo”コマンドは、管理者権限で実行するためのものです。
下の例のように、「[sudo] linux のパスワード:」と表示され、管理者のパスワード入力を求められます。パスワードは、先ほどインストールの時に入力したパスワードです。

$ sudo apt update
[sudo] linux のパスワード:

スタートメニューからUbuntuを起動するには

上のように、[Ubuntu]等がメニューに登録され、起動ができるようになります。

WindowsターミナルからUbuntuを起動するには

WSLでのLinuxディストリビューション(Ubuntu 22.04など)をインストールすると、ターミナルの上部①(下図)から表示されるメニューにディストリビューションが追加されます。下の例では、Ubuntu(20.04)と、Ubuntu 22.04.1 LTSが表示されています。

起動後のターミナルです。

GUIのゲームを起動してみよう

テトリス「Quadrapassel」をプレイしてみます。落ちてくるブロックを回転や移動させながら、横一列に敷き詰めて消していくゲームです。
ターミナルから以下のコマンドを実行して、インストールします。

$ sudo snap install quadrapassel

「Quadrapassel」を起動します。

$ quadrapassel

無事、起動できました。
キーボードの矢印キーを使って操作します。

操作キー
左に移動
右に移動
下に加速
落とすスペース
回転

ログを抑止するには

「Quadrapassel」実行中は、ターミナルに大量のログが表示されます。次のように起動すれば、ログの表示を抑止することができます。

$ quadrapassel >/dev/null 2>&1

最後に

WSLgの世界は、これからさらに便利に使いやすくなっていくとおもわれますので、皆様もぜひ注目ください。