pipipipi.net

pipipipi.net

約5分で読めます

WSL2セットアップ完全ガイド — インストールから実用設定まで

WSL2セットアップ完全ガイド — インストールから実用設定まで

WSL2(Windows Subsystem for Linux 2)は、Windows上でLinux環境をそのまま動かせる仕組みです。仮想マシンを別途用意しなくても、PowerShellから一つのコマンドを打つだけでUbuntuなどのディストリビューションが使えるようになります。ここではインストールから初期設定、実際に使う上で押さえておきたい操作までをまとめます。

前提条件

WSL2を使うには次のいずれかの環境が必要です。

  • Windows 10 バージョン2004以降(ビルド19041以降)
  • Windows 11

また、CPUがSLAT(Second Level Address Translation)に対応している必要があります。Intel Nehalem世代(Core第1世代)以降、AMD Opteron以降のCPUであれば問題ありません。古いCore 2 Duoなどでは、仮想化機能を有効にしてもWSL2は動作しない点に注意してください。

BIOS/UEFIで仮想化支援機能(Intel VT-x、AMD-V)が無効になっていると、後述のインストールでエラーになります。CPUメーカーやPCメーカーごとに設定項目の名称や場所が異なるため、事前に有効化しておくとスムーズです。

インストール手順

Windows 10/11では、PowerShellを管理者権限で開いて次の1行を実行するだけでインストールが完了します。

wsl --install

このコマンドはWSLの実行に必要な機能を有効化し、既定のディストリビューションであるUbuntuをインストールします。実行後は一度PCを再起動してください。

再起動後、初回起動時にUbuntuのコンソールが立ち上がり、ファイルの展開処理が走ります。この初回だけ少し時間がかかりますが、2回目以降の起動は1秒程度で完了します。

Ubuntu以外のディストリビューションを使いたい場合は、まず選択肢を確認します。

wsl --list --online

表示された名前を指定してインストールします。

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

すでにWSLが有効化された状態で”wsl —install”を実行するとヘルプが表示されるだけになることがあります。その場合は上記の”—list —online”と”-d”指定でのインストールを試してください。ダウンロードが0%のまま進まない場合は、“wsl —install —web-download -d <ディストリビューション名>“を試すと解決することがあります。

Ubuntuの初期設定

インストール完了後、初回起動時にLinux側のユーザー名とパスワードの設定を求められます。ここで作成するユーザーはUbuntu内のrootではない一般ユーザーで、“sudo”コマンドで管理者権限の操作を行います。

ユーザー作成が終わったら、まずパッケージ一覧とインストール済みパッケージを最新化しておきます。

sudo apt update && sudo apt upgrade -y

WindowsとLinuxのファイルシステムを行き来する

WSL2では、Windows側のドライブが”/mnt/“以下にマウントされます。例えばWindowsの”C:\Users\ユーザー名”は、WSL側からは次のパスでアクセスできます。

/mnt/c/Users/<ユーザー名>

一方で、Linux側のファイルをWindowsのエクスプローラーから見たい場合は、アドレスバーに次を入力します。

\\wsl$

パフォーマンス面では、Windows・Linuxどちらのコマンドラインで主に作業するかによって、ファイルの置き場所を使い分けるのがポイントです。Linuxコマンドライン中心の開発であれば、プロジェクトファイルはWindows側の”/mnt/c/…”ではなく、Linux側のホームディレクトリ(“/home/ユーザー名/…”)に置いた方が高速に動作します。逆にWindows側のツールで主に作業するなら、Windowsのファイルシステムに置く方が向いています。

WSL側から現在のディレクトリをそのままエクスプローラーで開きたいときは、次のコマンドが便利です。

explorer.exe .

末尾のピリオドを忘れると正しく開けないので注意してください。

WindowsとLinuxのコマンドは混在させて実行することもできます。例えばPowerShellから直接Linuxコマンドを呼び出す場合は次のようにします。

wsl ls -la

逆にLinux側からWindowsの実行ファイルを呼び出すこともできます。

notepad.exe foo.txt

WSL1との違い

“wsl —install”で新規にインストールした場合、既定でWSL2としてセットアップされます。WSL1は軽量な互換レイヤーとしてLinuxシステムコールをWindows側で解釈する方式であるのに対し、WSL2は実際のLinuxカーネルを軽量な仮想マシン上で動かす方式です。そのため、WSL2の方がLinuxとの互換性が高く、フルシステムコールに対応していますが、Windows側ファイルシステム(“/mnt/c/”以下)へのアクセス速度はWSL1より劣る場合があります。ディストリビューションごとにWSL1/WSL2を切り替えることも可能です。

wsl --set-version <ディストリビューション名> <1または2>

インストール状態・バージョンの確認

現在インストールされているディストリビューションとそのWSLバージョンを確認するには次を使います。

wsl --list --verbose

WSL全体のステータス(既定のディストリビューション、カーネルバージョンなど)を確認するには次を使います。

wsl --status

WSL自体やコンポーネントのバージョンを確認したい場合は次を使います。

wsl --version

よくあるつまずき:仮想化が無効

“wsl —install”の実行後やディストリビューション起動時に仮想化関連のエラーが出る場合、多くはBIOS/UEFIで仮想化支援機能が無効になっていることが原因です。以下を確認してください。

  1. BIOS/UEFIでIntel VT-x(またはAMD-V)を有効化する
  2. Windowsの「オプション機能」で「Virtual Machine Platform」が有効になっているか確認する
  3. 有効化後にPCを再起動する

管理者権限のPowerShellで、Hyperバイザーの起動設定が無効になっていないかも確認できます。

bcdedit /enum | findstr -i hypervisorlaunchtype

“hypervisorlaunchtype Off”と表示された場合は、次のコマンドで有効化します。

bcdedit /set hypervisorlaunchtype Auto

VMware・VirtualBoxなど他の仮想化ソフトを併用している場合は、Hyper-Vと共存できるバージョン(VMware 15.5.5以降、VirtualBox 6以降)を使うか、無効化しておく必要があります。

まとめ

WSL2は”wsl —install”の一行でほぼ環境構築が完了するところまで簡単になっています。つまずきやすいのは仮想化支援機能の有効化まわりだけで、それさえクリアすれば、あとはUbuntuのユーザー設定とパッケージ更新をすれば実用できる状態になります。WindowsとLinuxのファイルシステムを行き来する際は、パフォーマンスを意識してファイルの置き場所を選ぶとよいでしょう。

関連記事