ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
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 を一旦停止すると返ります。日常的には .wslconfig で memory=8GB 程度に上限を切ると安全。
Q: 既存の WSL1 distro を WSL2 にしたい
A: wsl --set-version Ubuntu-22.04 2 で変換できます。完了まで数分。データはそのまま保持されますが、念のためバックアップ (wsl --export) を取ってから実行を推奨。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- WSL1 インストール方法
- WSL2のインストール
- バージョン確認
- エラー一覧 (WSL)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?