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の世界は、これからさらに便利に使いやすくなっていくとおもわれますので、皆様もぜひ注目ください。