「WSL2」をインストールしよう

2024年10月30日(水)
水野 源
第1回の今回は、Windows 11上でLinux環境を実行する機能「WSL」(Windows Subsystem for Linux)のインストール方法を解説します。

はじめに

現在、サーバーサイドのあらゆる場所で、Linuxが活用されています。そのためターゲットとなるLinuxに関する知識と、その上で動作するツールへの習熟は避けては通れません。ところが、Linuxマシンを用意して本格的に学習しようとしても、なかなか長続きせず、気がついたらWindowsしか使わないようになっていたという初学者も多いのではないでしょうか。

現在のWindows 11では、本物のLinux環境をそのまま動かすことができます。普段使いのWindowsとLinuxをシームレスに運用できる「WSL(Windows Subsystem for Linux)」は学習においても、また実際の開発作業においても、非常に便利なツールです。

本連載では、WSLをベース環境とした開発環境の構築方法や様々なテクニック、Tips等を紹介します。これからLinuxに入門したいWindowsユーザーの方、そしてLinuxをさらに便利に活用したい方、または現場でDevOpsをはじめたいような方にとって、役立つ情報をお届けできると考えています。

WSLとは

Windows 11に搭載されているWSLは、Windows上で完全なLinux環境を実行できる機能です。WSLを利用すれば、Bashなどのシェルをはじめ、各種Linuxコマンド、さらにはLinux向のGUIアプリを、Windows上で直接実行できます。

実は、Windows上でLinuxやUnixのツールを実行するための環境は過去にも色々な実装が存在しましたが、それらはあくまでサードパーティのツールであったり、複雑なインストール手順が必要であるなど、気軽にお勧めできるものではありませんでした。これに対してWSLはMicrosoftが公式に提供しているプロダクトで、ストアから簡単にインストールできるため、導入までのハードルも非常に低くなっています。WSLは、普段使いのデスクトップとしてはWindowsを必要としている人がLinuxのツールを使いたい場合の、最適な選択肢だと言えるでしょう。

WSLには、従来の「WSL1」と、より新しい「WSL2」の2つのバージョンが存在します。大きな違いは、その内部アーキテクチャにあります。WSL1では「LXCore」や「LXSS」と呼ばれるサブシステムがLinuxカーネルの機能をエミュレーションしていました。簡単に言えばLinuxそのものが動いていたわけではなく、APIを変換する互換レイヤーだったわけです。

一方のWSL2は、Windows上で本物のLinuxカーネルが動作しているため、システムコールに完全な互換性があり、パフォーマンスも大きく向上しています。特別な理由がなければWSL2を使うべきでしょう。現在、デフォルトの状態ではWSL2がインストールされるようになっています。本連載でもWindows 11上でWSL2を動かすことを前提に解説していきますが、WSL2のことを「WSL」と表記することもあるため、あらかじめご了承ください。

ちなみに余談ですが、WSL2がWSL1の完全な上位互換なのかと言えば、必ずしもそうではありません。唯一の例外と言ってもよいのが「WSL環境内からのWindowsファイルシステムへのアクセス」です。これに関してはWSL1の方が高速なため、Windows上のファイルをWSLのコマンドで操作したいような用途に限って言えば、敢えてWSL1を選択するというケースもアリでしょう。

なぜWSLなのか

さて、そもそもの話になりますが、なぜWSLが必要なのでしょうか。

現在、Linuxはサーバー、クラウド、コンテナ、IoT、HPCといった様々な分野において、非常に目覚ましい進出を遂げています。例えば「W3Techs」によるWebサーバーのOSのシェアを見ると、Windowsが全体の14.2%であるのに対し、86.1%がUnix系のOSとなっています。そして、そのUnix系OSのうち、過半数の52.4%がLinuxなのです。

また、世界のスーパーコンピューターの性能ランキング「TOP500」を見てみましょう。驚くことに、TOP500にランクインしているスーパーコンピューターにおけるLinuxの採用率は100%です。この状況は2017年以降、変わらず続いています。

世界のスーパーコンピューターの性能ランキング「TOP500」で利用されているOSの種類

Linux向けの開発作業を行うには、ターゲットとなるLinux環境が必要です。対して、デスクトップOSとして最もシェアの大きいOSはWindowsです。ここで開発者が使うデスクトップOSと、ターゲットシステムの間にあるギャップが問題となります。

最近では、UbuntuをはじめとするLinuxのデスクトップ環境も非常に洗練されてきており、普段使いで困ることはほぼありません。そのため開発者が使うデスクトップOSをLinuxにしてしまうというのも1つの方法でしょう。しかし、実際の業務においては「書類の作成にMS Officeが必要」「Adobeのアプリが必要」「Linuxではプリンターが動かない」「社内管理の都合上、プリインストールのOSを入れ替えられない」などの理由で、Linuxを普段使いにできないケースもあるでしょう。というより、一般的な企業であればその方が多数派でしょう。

こうした背景から、開発者が普段使いする環境として、BSDベースのUnixであるMacを選択するケースが2000年代後半頃から非常に増加しました。技術系のカンファレンスに参加して、半数以上の人が銀色の板を持っている光景を見たことがある人も多いのではないでしょうか。ところが、MacはUnixではあるものの、Linuxではありません。「標準でインストールされているツールがGNUのものと挙動が異なる」「Linuxカーネルの機能が使えるわけではない」など、環境構築に当たってはLinuxとの差異に苦しめられるケースも多々あります。

この「OSそのものはWindowsを使いたい」「でも本物のLinux環境が手元にほしい」という要望を、従来の仮想マシンよりも簡単に満たせるのがWSLなのです。

WSLのインストール

前置きが長くなりましたが、ここからはWSLをインストールし、土台となる環境を構築していきましょう。WSL2は内部的に仮想マシンを作ってLinuxカーネルを動かすため、WSL2を利用するには、あらかじめCPUの仮想化支援機能(Intel VTやAMD-V)を有効にしておく必要があります。一般的に、仮想化支援機能の有効/無効の切り替えはPCのUEFI(またはBIOS)で行います。詳しくはお使いのPCのマニュアルを参照してください。とは言え、今どきのPCであれば、デフォルトで有効となっていることが多いでしょう。

Intel VMXを有効にする

  1. Windows 11を起動したら、スタートメニューから「Windows PowerShell」を起動してください。

    Windows PowerShellを起動する

    WSLでは、複数のLinuxディストリビューションが提供されています。PowerShellに以下のコマンドを入力することで、提供されているディストリビューションの一覧を表示できます。
    $ wsl --list --online

    ディストリビューションの一覧を確認する

    本連載では、人気のLinuxディストリビューションであるUbuntuを使用することを前提に解説していきます。そこで、2024年現在の最新長期サポート版にあたる「Ubuntu 24.04」をインストールします。
  2. 続いて、PowerShell上で以下のコマンドを実行してください。
    $ wsl --install -d Ubuntu-24.04

    Ubuntu 24.04をインストールする

  3. WSLをインストールするにはWindowsの管理者特権が必要です。以下のようなウィンドウが表示されるので「はい」をクリックします。

    WSLをインストールしてもよいかを確認

  4. 同様に、アプリがデバイスに変更を加える確認が表示されるので「はい」をクリックしてください。

    アプリがデバイスに変更を加えることを許可

  5. これでインストールが開始します。しばらく待つとインストールが完了して以下のメッセージが表示されるので、Windowsを再起動しましょう。

    インストールが完了したらWindowsを再起動

  6. Windowsを再起動してログインすると自動的にターミナルが起動し、初回のセットアップがはじまります。Ubuntu上で利用するユーザー名とパスワードを設定しましょう。

    まずユーザー名を入力します。一般的なLinuxディストリビューションでは、ユーザー名にはアルファベット小文字、数字、アンダースコア、ハイフンが使えます。ただし、頭文字はアルファベットの小文字にするのが一般的です。

    ユーザー名を入力する

  7. 次にユーザーのパスワードを設定します。確認のため同じパスワードの再入力を促されるので、2回入力してください。なお、パスワードのエコーバック(●などが表示されること)は行われないため正しく入力できていないように見えてしまいますが、気にせず入力して[Enter]キーを押してください。

    パスワードを設定する

  8. パスワードの設定が完了すると、Ubuntuにログインしてシェルが操作できるようになります。これで、WSL2上でUbuntuを使いはじめる準備は完了です。

    Ubuntuのセットアップの完了

WSLの起動方法

本格的な環境構築やカスタマイズといった解説は次回以降に譲りますが、その前にまず、WSLの起動方法を覚えておきましょう。

インストールしたWSLのディストリビューションはスタートメニューに登録されるので、一般的なWindowsのアプリと同様に、ここから起動できます。スタートメニューを開いたら「Ubuntu」で検索すると良いでしょう。

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

また、PowerShellを動かしている、Windowsターミナル内からUbuntuのプロファイルを指定することでも起動できます。Windowsターミナルとプロファイルについては、次回で詳しく解説します。

Windowsターミナルからプロファイルを指定して起動する

おわりに

前世紀からPCに触れている人であれば、MicrosoftがLinuxやオープンソースを嫌っていたこと、もっと直接的に言えば「敵」として見ていたことを覚えているかもしれません。そのMicrosoftがWindows上にLinuxを搭載するとは、隔世の感があります。まさにLinuxがITシステムにおいて、欠かせない存在になっていることの証左と言えるのではないでしょうか。

次回からは、本格的にWSLの使いこなしテクニックを紹介していきます。ご期待ください。

日本仮想化技術株式会社
Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。日本仮想化技術株式会社所属。

連載バックナンバー

開発ツール技術解説
第4回

WSLでUbuntuのユニバーサルパッケージシステム「snap」を使う

2024/12/18
第4回の今回は、Ubuntuのパッケージ管理システムである「snap」の基礎知識と使い方について解説します。
開発ツール技術解説
第3回

「Ubuntu」のパッケージ管理を学ぼう

2024/12/4
第3回の今回は、WSL上のUbuntuを活用する上で必須となる、パッケージの管理方法について解説します。
開発ツール技術解説
第2回

「Windows Terminal」を使いこなす

2024/11/20
第2回の今回は、実際にWSLを操作するCLIについて、その使い勝手を決めるターミナル「Windows Terminal」の操作方法について解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています