この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:7
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: WSL2のインストール
SEOタイトル: WSL2 インストール完全ガイド — wsl --install、Ubuntu 設定、.wslconfig、Windows Terminal/VS Code 連携、CUDA

この記事の要点
  • Windows 10 (21H2+) / Windows 11 では wsl --install 一発で WSL2 + Ubuntu が入る (要管理者 + 再起動)
  • 別のディストリビューションは wsl --install -d Ubuntu-24.04-d kali-linux 等で指定
  • 初回起動でユーザ名・パスワードを設定。Linux 側ユーザは sudo 可能で、Windows 側 administrator とは独立
  • リソース制御は %USERPROFILE%\.wslconfig で memory / processors / swap を制限
  • Windows Terminal 統合 + VS Code Remote-WSL 拡張機能で快適な開発体験
  • GPU パススルー対応で CUDA も動作 (Windows 側 NVIDIA ドライバを最新にするだけ)

WSL2 とは

WSL2 (Windows Subsystem for Linux version 2) は、Windows 上で本物の Linux カーネルを Hyper-V ベースの軽量 VM で動かす仕組みです。WSL1 はシステムコール変換だったため互換性に限界がありましたが、WSL2 は Linux カーネルそのものを動かすため Docker / systemd / iptables / 多くのドライバが動作します。

動作要件

  • Windows 10 バージョン 21H2 以降 (Build 19044+) または Windows 11
  • x64: BIOS で仮想化機能 (VT-x / AMD-V) 有効
  • ARM64: Windows on ARM 対応 (Surface Pro X など)
  • 4 GB 以上 RAM 推奨
  • 機能: 仮想マシン プラットフォーム + Linux 用 Windows サブシステム

一発インストール: wsl --install

Windows 10 21H2 以降と Windows 11 では、以下のコマンド 1 つで全て揃います。

# 管理者 PowerShell で実行
wsl --install

# 動作:
#   1. 仮想マシン プラットフォーム機能を有効化
#   2. Linux 用 Windows サブシステム機能を有効化
#   3. WSL2 を既定に設定
#   4. 最新 Linux カーネルをダウンロード
#   5. Ubuntu の最新 LTS を Microsoft Store からダウンロード
#   6. 再起動を促す

# 再起動後、自動で Ubuntu のセットアップが始まる
# UNIX username:    alice
# New password:     ********
# Retype password:  ********

ディストリビューションを選んで入れる

# 利用可能な一覧
wsl --list --online
wsl -l -o

# 例: Ubuntu の最新 LTS バージョン指定
wsl --install -d Ubuntu-24.04
wsl --install -d Debian
wsl --install -d kali-linux
wsl --install -d Ubuntu-22.04
wsl --install -d openSUSE-Tumbleweed
wsl --install -d Oracle-Linux-9.1

# インストール済み一覧
wsl --list --verbose
wsl -l -v
#   NAME            STATE           VERSION
# * Ubuntu-24.04    Running         2
#   Debian          Stopped         2

WSL の起動・終了・既定設定

# 既定の Linux を起動
wsl

# 特定の Linux を指定
wsl -d Debian

# 1 コマンド実行して戻る
wsl -d Ubuntu-24.04 -- ls -la

# 終了
exit                  # 中から
wsl --terminate Ubuntu-24.04   # 外から特定
wsl --shutdown                  # 全 WSL VM を停止

# 既定の Linux を変更
wsl --set-default Ubuntu-24.04
wsl -s Ubuntu-24.04

初期セットアップ後の最低限

# Ubuntu に入った直後
sudo apt update && sudo apt -y upgrade

# 開発系の定番
sudo apt -y install build-essential git curl wget zip unzip \
                    python3 python3-pip python3-venv \
                    htop tmux jq tree

# locale を日本語に
sudo apt -y install language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8

# タイムゾーン
sudo timedatectl set-timezone Asia/Tokyo

WSL の更新

# カーネル更新
wsl --update

# 強制更新
wsl --update --pre-release

# ステータス確認
wsl --status
# Default Distribution: Ubuntu-24.04
# Default Version: 2
# Kernel version: 5.15.167.4

.wslconfig でリソース制限

WSL2 の VM が使えるメモリ・CPU を制限します。ファイル名はちょうど .wslconfig で、配置は %USERPROFILE% (例 C:\Users\alice\.wslconfig)。

# %USERPROFILE%\.wslconfig

[wsl2]
memory=8GB                   # 既定はホストの 50% (Windows 10) / 50% 上限 8 GB (Windows 11 22H2 以降)
processors=4                 # 既定はホストの論理 CPU 数
swap=2GB                     # ページファイル相当の WSL 専用 swap
swapFile=C:\\temp\\wsl-swap.vhdx

# ネットワーク
localhostForwarding=true     # Linux 上の listen ポートを Windows 側 localhost からアクセス可能に
networkingMode=mirrored      # Windows 11 22H2+ のミラーモード
firewall=true                # Hyper-V ファイアウォール
dnsTunneling=true            # DNS を Windows 経由 (VPN との相性が良くなる)
autoProxy=true               # Windows のプロキシ設定を継承

# 起動オプション
kernelCommandLine = systemd.unified_cgroup_hierarchy=1
guiApplications=true         # WSLg (Wayland 経由の Linux GUI)
# 反映には再起動が必要
wsl --shutdown
wsl                          # 再起動で .wslconfig 適用

systemd の有効化 (Ubuntu 22.04+)

# /etc/wsl.conf を編集
sudo tee /etc/wsl.conf > /dev/null <<'EOF'
[boot]
systemd=true

[user]
default=alice

[interop]
appendWindowsPath=true       # Windows の PATH を引き継ぐ
EOF

# Windows 側で再起動
# (PowerShell)
wsl --shutdown

Windows Terminal との統合

Windows Terminal は WSL タブを自動検出します。Microsoft Store から導入後、Ubuntu などのタブが自動で追加されます。

// settings.json (Ctrl+, で開く)
{
  "profiles": {
    "list": [
      {
        "guid": "{wsl-generated-guid}",
        "name": "Ubuntu",
        "source": "Windows.Terminal.Wsl",
        "startingDirectory": "//wsl$/Ubuntu-24.04/home/alice",
        "colorScheme": "One Half Dark",
        "fontFace": "Cascadia Code"
      }
    ]
  }
}

VS Code Remote-WSL

VS Code 拡張機能 「WSL」 (旧名 Remote-WSL) を入れると、Linux 側のコードを Windows の VS Code で快適編集できます。

  • Windows 側 VS Code に拡張機能「WSL」をインストール
  • WSL 内で code . と打つと VS Code が Windows 側で起動し WSL に接続
  • Linter / Formatter / Debugger はLinux 側で動作 → Node / Python / Go のバージョンは Linux の物が使われる
  • ファイルアクセスは \\wsl$\Ubuntu-24.04\home\alice 経由でも Windows から見える

Docker Desktop 連携

Docker Desktop は WSL2 をバックエンドとして使うのが既定です。インストール後に Settings → General → Use the WSL 2 based engine が ON になっており、Settings → Resources → WSL Integration で対象 distro を選びます。

# WSL 内で
docker version
docker run --rm -p 8080:80 nginx
# → Windows 側ブラウザで http://localhost:8080 にアクセス可

GPU パススルー (CUDA)

WSL2 は WDDM 2.9+ で GPU パススルーに対応し、Linux 側で CUDA / DirectML が動きます。

# Windows 側で NVIDIA ドライバを最新版に
#   (WSL 用ドライバは NVIDIA 公式から or Windows Update)
#   * Linux 側に nvidia-driver を入れる必要は無い

# WSL 内で CUDA Toolkit を入れる
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt -y install cuda-toolkit-12-3

# 確認
nvidia-smi
# Driver Version: 555.xx CUDA Version: 12.5

ファイルシステム性能の注意

  • WSL 内から /home 以下 (ext4) へのアクセスは高速 → プロジェクトは Linux 側に置く
  • WSL 内から /mnt/c/Users/... (NTFS) は桁違いに遅い → npm install / git clone はやめた方がよい
  • Windows 側から \\wsl$\Ubuntu-24.04\... でアクセスする時は、エクスプローラ経由は問題なし

FAQ

Q: wsl --install が「機能を有効化してください」と言う
A: BIOS で仮想化が無効 or Windows 機能が無効。dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all を管理者 PowerShell で実行 → 再起動 → BIOS で VT-x / AMD-V を ON。

Q: メモリを開放しても Windows 側に戻らない
A: WSL2 の VM がメモリを抱えたままです。wsl --shutdown で VM を一旦停止すると返ります。日常的には .wslconfigmemory=8GB 程度に上限を切ると安全。

Q: 既存の WSL1 distro を WSL2 にしたい
A: wsl --set-version Ubuntu-22.04 2 で変換できます。完了まで数分。データはそのまま保持されますが、念のためバックアップ (wsl --export) を取ってから実行を推奨。