WSL2とは、Windows Subsystem for Linux 2の略で、Windows上でLinuxが使えるサービスのことです。WSLの後継として2019年にリリースされました。
WSL2を使うとWindows上でsudoなどLinuxのコマンドを使うことができます。(command not foundと言われなくなります)
導入はとても簡単です。またインストール後は自動でWindows Terminalに追加してくれます。
ここでは、WindowsにLinuxディストリビューションをWSL2として追加する方法を解説しています。
前提条件
WLS2を使うためにはwindowsのバージョンが条件に沿っている必要があります。
- x64 システムの場合:バージョン 1903 以降、ビルド 18362 以上。
Windowsバージョンの確認方法
自分のPCの状態を確認するには、コマンドラインにwinver
と入力すれば、バージョン情報のウィンドウが表示されます。
$ winver
バージョンやビルドが古い場合
Windows メニューから 「設定」→「更新プログラムの確認」をクリックします。
検索まどに「更新」と入力すれば表示されます。
必要に応じて「ダウンロードとインストール」を行ってください。
(参考)Windows 10 用 Windows Subsystem for Linux のインストール ガイド
仮想マシン機能を有効にする
仮想マシンとして使うための機能を有効化します。WindowsメニューからPowerShellを検索して、管理者として開きます。
次のコマンドを実行します。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
再起動すれば、WSLのインストールが完了します。
Linuxカーネル更新プログラム パッケージの実行
続いて、 Linuxカーネル更新プログラムの最新パッケージをダウンロードし、インストールを行います。
次のリンクをクリックすればダウンロードが始まります。ダウンロードが完了したらダブルクリックしてインストールを行います。
WSLのデフォルトバージョンを2に指定する。
$ wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
正しく変更できると下に、「WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください」というメッセージが表示されます。
Linuxディストリビューションのインストール
Microsoft Store を開き、インストールしたいLinuxディストリビューションを選択します。
ディストリビューション | 内容 |
---|---|
Ubuntu | Debian系。企業(Canonical社)が開発・運用。 |
Kali Linux | Debian系。ペネトレーションテストが主目的 |
Debian | 無料のLinuxディストリビューション。ボランティアで開発・運用。 |
Alpine WSL | 軽量。Debianベースのライブラリと互換性がない場合がある |
選択するなら、UbuntuかDebianが無難です。ここではUbuntuをインストールします。
Ubuntuを選択して「入手」をクリックします。
インストールが完了したら、「起動」をクリックします。
すると、Ubuntuのコンソールが起動します。
Ubuntuのセットアップ
コマンドラインでUbuntuのセットアップをしていきます。
最初にユーザー名の入力を求められるので、好きな名前を入力します。(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:
続いてパスワードの入力を求められるので、好きなパスワードを入力します。(画面上に表示されませんが、打ち込まれています)
New password:
Retype new password:
設定が完了すると次のようなメッセージが表示されます。
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu Jul 22 22:07:48 JST 2021
System load: 0.07 Processes: 8
Usage of /: 0.4% of 250.98GB Users logged in: 0
Memory usage: 10% IPv4 address for eth0: 172.25.88.154
Swap usage: 0%
1 update can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
This message is shown once a day. To disable it please create the
/home/docker/.hushlogin file.
以上でUbuntuのインストールは完了です。
Ubuntuのインストール確認
Ubuntuが正しくインストールされたか確認するために、Windows Terminalを開き、wsl -l -v
を実行します。
$ wsl -l -v
NAME STATE VERSION
* docker-desktop-data Running 2
docker-desktop Running 2
Ubuntu Running 2
Ubuntuが表示され、VERSIONが2になっていればOKです。WSL2としてUbuntuが認識されています。
なお、Windows Terminal上部のタブをクリックすると、Ubuntuが追加されています。
Ubuntuを選択すれば、Linux系コマンドを実行することができます。
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
docker@user:/mnt/c/Users$
コマンドの実行例
Linuxディストリビューションがインストールできたので、Linux特有のコマンドを実行してみます。
sudo hwclock -s
マシン(ここではWSL2)の時刻にPCの時刻をセットするコマンドです。WSL2ではPCがスリープするとWindows本体と時刻がズレる問題があり、これを解消するものです。
- sudo: スーパーユーザーとしてコマンドを実行する。
- hwclock: マシンの時刻設定(ハードウェア・クロック)を行う
- -s:
--set
オプション。--date
オプションで指定した時刻に設定する
$ sudo hwclock -s
[sudo] password for docker:
$ date
Fri Jul 23 10:21:41 JST 2021
パスワードを求められ、入力するとコマンドが実行できました。(bash: sudo: command not foundが出ません)
以上でLinuxディストリビューションのインストールは完了です。