はじめに
以前、Windows 10 で Linux のコマンドを実行する方法として、WSL(Windows Subsystem for Linux)という仕組みと設定を活用するやり方をご紹介しました。
ですが、2020年5月27日(米国時間)にリリースされた、Windows 10 バージョン 2004 (May 2020 Update)で、WSLをさらにパワーアップした、WSL 2 がリリースされました。
旧WSL(WSL 1)では、Linux のコマンドを実行するのに、wsl ls
というようにwsl
を前に付ける必要があり、それを回避するために色々な工夫が必要でしたが、そんな設定は不要となり、ダイレクトに Linux コマンドを実行できるようになりました。
この記事では、WSL 2 のセットアップ方法と、とても便利な使い方をご紹介します。
システム要件
- Windows 10 を 2004 にアップデートされていること
- うれしいことに、Home でも Pro でも利用できる
- 2004へのアップデートとバージョンの確認方法は こちらの記事が詳しい
- BIOSで仮想化機能が有効になっていること
- 公式ドキュメントには目立つように書いてなかったが、エラーが出て調査したところ、トラブルシューティングのところに記述があった
WSL 2 の特徴
- Windows 10上でLinuxコマンドを本当の意味で実行できるようになった
- WSL 1 と WSL 2 は共存可能(コマンドで切り替え)
- VIrtualBox と VMWare は、現時点では WSL 2 と共存できない
- 仮想マシンでも WSL 2 は実行可能
- 但し、Parallels Desktop for Mac は Pro 以上でないと動作しない
詳しくは以下ドキュメントを参照してください。
WSL 2 のインストール方法
公式の手順書は、下記で公開されています。そのままやればできるぐらいよくできているドキュメントですね。
WSL 2 のインストールや設定は、PowerShell を管理者権限で開いた画面で行います。
機能のインストール
以下のコマンドを実行して、必要な機能をインストールします。
# Linux 用 Windows サブシステム > dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 仮想マシン プラットフォーム > dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
インストールが済んだら、Windows を再起動して設定を反映させます。
Linux カーネルを最新化
下記記事にある、Linux カーネルを最新にするプログラムをインストールします。
以下のリンクからも、直接更新プログラムをダウンロードできます。
インストールは単純で、デフォルトインストールですぐに終わります。(というか選択肢がない)
WSL 2 をデフォルトにする
下記コマンドを実行して、WSL 2 をデフォルトのバージョンにします。
> wsl --set-default-version 2
Linux のインストール
Microsoft Store から、公式ドキュメントに掲載されている Linux ディストリビューションの中から好きなものを選びインストールします。
ここでは、Ubuntu 20.04 LTS をインストールします。
Ubuntu のインストールが済んだら、Ubuntu を起動します。
起動して数分待つと、ユーザー名とパスワードの設定を要求されるので入力します。
Ubuntu のインストールが済んだので、下記コマンドで、Ubuntu 20.04 が WSL 2としてインストールされているか確認します。
> wsl --list --verbose NAME STATE VERSION * Ubuntu Stopped 1 Ubuntu-20.04 Stopped 2
正しくインストールされているようですね。
但し、デフォルトの Ubuntu が WSL 1 のようです。
下記コマンドで、デフォルトの Linux ディストリビューションを WSL 2に変更します。
> wslconfig /setdefault Ubuntu-20.04
確認すると、正しく変更されていることが分かります。
> wsl --list --verbose NAME STATE VERSION * Ubuntu-20.04 Stopped 2 Ubuntu Stopped 1
以上で、WSL 2 の設定は完了です。
WSL 2 の便利な使い方
調べていて気がついたのですが、WSL 2 のインストール方法はたくさんの記事があるのですが、実際の便利な使い方の記事がなかったので参考になるんじゃないかと思います。
コマンドプロンプトで wsl と入力する
コマンドプロンプトや PowerShell でwsl
と入力して改行すると、現在のパスをそのままに WSL 2に入ることができます。
もちろん、Linux コマンドをそのまま使えます。
こんな感じです。
C:\Windows\System32\drivers\etc> wsl xxx@DESKTOP-KHJGQFE:/mnt/c/Windows/System32/drivers/etc$ pwd /mnt/c/Windows/System32/drivers/etc
WSL 2からのCドライブは/mnt/cとなる
前項で気がついたかもしれませんが、WSL 2 から Windows の C ドライブは /mnt/c
でアクセスできます。
Windows から WSL 2の領域にアクセスするには\\wsl$
を使う
エクスプローラー限定ですが、Win + E でエクスプローラーを起動して、\\wsl$
とアドレスバーに入力すると、Linux の領域にアクセスすることができます。
コマンドプロンプトや PowerShell でアクセスしようとしても、失敗します。
sudo を使ってもUACの管理者権限にならない
hosts ファイルで調べたのですが、sudo vim hosts
でファイルを開いても、保存することはできませんでした。
sudo は、Linux 内では有効ですが、Windows の UAC(User Access Controll)には無力なようです。
Windows Terminal でさらにパワーアップ
Microsoft Store から、Windows Terminal をダウンロードしてインストールすると、さらに便利さがパワーアップします。
1つのウィンドウに、複数タブを表示でき、タブにはコマンドプロンプト、PowerShell、WSL のLinux を選択できます。もちろん、コピーアンドペーストのショートカットも使えます。生産性がぐっと上がりますね。
おわりに
Windows 10 で、WSL 2を使って Linux コマンドを実行する方法をご紹介しました。
Windows 10 をより便利に使えるようになるのではないでしょうか。
WSL 2 には、まだ VirtualBox や VMWare などと共存できない課題がありますが、解決する方向で進んでいるようなので期待したいですね。