WSL2入門 - WindowsでLinuxを使う方法

WSL2入門 - WindowsでLinuxを使う方法

WSL2とは何か?

WSL2(Windows Subsystem for Linux 2)は、Windows上でLinuxを仮想マシンなしで動かすための仕組みで、Windows 10(バージョン2004以降)と Windows 11 に標準搭載されている。

WSL1と比べてWSL2は完全なLinuxカーネルを搭載しており、Dockerやsystemdも動作する。開発環境として日常的に使える水準に達しているため、Windows PCでLinuxを学びたい場合の最有力な選択肢となっている。

WSL2でできること

  • Ubuntu / Debian / Fedora 等のLinuxコマンドをWindowsで実行
  • Dockerコンテナの実行
  • PythonやNode.jsなどの開発環境構築
  • シェルスクリプトの作成・実行
  • VS CodeでLinuxファイルを直接編集

WSL2のシステム要件は?

WSL2を使うにはWindows 10 バージョン2004(ビルド19041)以降、またはWindows 11が必要で、かつBIOSで仮想化(VT-x / AMD-V)が有効になっていること。

項目 最低要件
OS Windows 10 バージョン2004(ビルド 19041)以降 / Windows 11
アーキテクチャ x64 または ARM64
仮想化 BIOS/UEFI で有効化済み

Windowsのバージョンは winver コマンドで確認できる。

winver

仮想化が有効かどうかはタスクマネージャー(Ctrl+Shift+Esc)→「パフォーマンス」→「CPU」の「仮想化」欄で確認できる。

WSL2のインストール方法

Windows 11 と Windows 10(2021年10月アップデート以降)では、コマンド1行でWSL2とUbuntuをまとめてインストールできる。

1. 管理者権限でPowerShell(またはコマンドプロンプト)を開く

スタートメニューで「PowerShell」を右クリック →「管理者として実行」を選択する。

2. インストールコマンドを実行する

wsl --install
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Ubuntu
Ubuntu はインストールされました。
操作を正常に完了しました。

3. PCを再起動する

再起動後、自動的にUbuntuのセットアップが始まる。ユーザー名とパスワードを設定するとLinux環境が使えるようになる。

設定するパスワードはLinuxのsudoコマンドで必要になる。忘れずに記録しておくこと。

特定のディストリビューションをインストールしたい場合

利用可能なディストリビューション一覧を表示し、任意のものを指定してインストールできる。

wsl --list --online
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
Ubuntu-24.04                    Ubuntu 24.04 LTS
...
wsl --install -d Ubuntu-24.04

インストール済みのディストリビューションを確認する

wsl -l -v
  NAME            STATE           VERSION
* Ubuntu          Running         2
  Ubuntu-24.04    Stopped         2

「VERSION」が「2」ならWSL2として動作している。

Linuxディストリビューションを選ぶには?

初めてWSL2を使う場合はUbuntuが最も適している。公式ドキュメントが豊富で、aptパッケージマネージャーでほとんどのツールをすぐに導入できるためだ。

ディストリビューション 特徴 推奨対象
Ubuntu ドキュメント豊富・apt管理 初心者・一般開発者
Debian 軽量・安定重視 サーバー運用経験者
Kali Linux セキュリティツール特化 セキュリティ学習者
openSUSE エンタープライズ向け 企業環境での学習者

迷ったらUbuntu(LTS版)を選ぶのが無難。サポート期間が5年と長く、情報量も最多。

基本的なLinux操作を始めるには?

WSL2を起動するには、スタートメニューから「Ubuntu」(またはインストールしたディストリビューション名)を検索して開くか、PowerShellでwslと入力する。

wsl

起動するとLinuxのシェルが使えるようになる。基本的なコマンドを確認しよう。

# 現在のディレクトリを表示
pwd
/home/username
# ファイル一覧を表示
ls -la
# パッケージリストを更新する(初回セットアップ後に必ず実行)
sudo apt update && sudo apt upgrade -y

WSL2のシャットダウン

# 特定のディストリビューションを終了
wsl --terminate Ubuntu

# すべてのWSLインスタンスを終了
wsl --shutdown

WindowsとLinuxのファイルを共有するには?

WSL2からWindowsのファイルには /mnt/c/ 以下でアクセスでき、WindowsからLinuxのファイルはエクスプローラーの「\wsl$\Ubuntu」でアクセスできる。

WSL2からWindowsファイルへアクセスする

# Cドライブのホームディレクトリを見る
ls /mnt/c/Users/

# WindowsのDocumentsにファイルをコピーする
cp myfile.txt /mnt/c/Users/username/Documents/

LinuxファイルをWindowsのエクスプローラーで開く

LinuxのカレントディレクトリをWindowsエクスプローラーで開きたい場合は次のコマンドを実行する。

explorer.exe .

エクスプローラーのアドレスバーに \\wsl$\Ubuntu\home\username と入力してもLinuxファイルシステムにアクセスできる。

パフォーマンスの観点から、Linux上で作業するファイルはWindowsの /mnt/c/ ではなくLinuxのホームディレクトリ(/home/username/)に置くことを推奨する。クロスOS境界のI/Oは速度が遅くなるため。

VS CodeでLinuxのファイルを編集する

VS Codeに「Remote - WSL」拡張をインストールすると、LinuxファイルをWindows側から直接編集できる。

# WSL2のシェルからVS Codeを開く(Remote WSL拡張が必要)
code .

よくあるエラーと対処法

「仮想化が有効になっていない」エラー

原因:BIOSで仮想化(VT-x / AMD-V)が無効になっている。

対処:PCを再起動してBIOS/UEFI設定画面を開き(通常はF2またはDELキー)、仮想化オプションを有効化する。

wsl --install が失敗する(古いWindowsの場合)

Windows 10 バージョン1903〜2004の場合は手動で有効化が必要な場合がある。

# PowerShell(管理者)で実行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

再起動後、WSL2 Linuxカーネル更新プログラムのパッケージをMicrosoftの公式サイトからインストールする。

# WSL2をデフォルトバージョンに設定
wsl --set-default-version 2

「WslRegisterDistribution failed with error: 0x80370102」

原因:Hyper-Vまたは仮想マシンプラットフォームが有効になっていない。

対処:

# PowerShell(管理者)で実行
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

再起動後に再試行する。

パスワードを忘れた場合

# PowerShell(管理者)で rootユーザーとして起動
ubuntu config --default-user root

# WSL2内でパスワードを変更
passwd username

# デフォルトユーザーを元に戻す
ubuntu config --default-user username

上記コマンドの ubuntu 部分は使用しているディストリビューション名(例:ubuntu2404)に合わせること。

次に読む