「Windows ネイティブ版も出たことだし…」ということで、遅ればせながら 2026年1月から Claude Code を使い始めました。でもシェルコマンドやパス関連でやっぱり違和感が。それなら WSL2 で動かせばいいじゃない、ということでやってみました。
WSL2 + Ubuntu のインストールと設定
まずは WSL2 + Ubuntu をインストール。超簡単。
WSL2 + Ubuntu をインストール
コマンドプロンプトなどで以下を実行。
wsl --install
WSL2 自体のインストールが始まるのでしばし待つ。インストールが完了したら Windows を再起動。
再起動後、再度以下を実行。
wsl --install
Linux ディストリビューションのインストールが始まるのでしばし待つ。ディストリビューションは自動的に Ubuntu がインストールされるので特に指定などは不要。
インストールが終わると Ubuntu が勝手に起動しユーザー名とパスワードの登録が促されるので、適当にアレしてから一旦 Ubuntu からログアウト。しばらくして Ubuntu がシャットダウンされたのを確認してから次の作業。
しばらく待つのが億劫な場合は、コマンドプロンプトなどで以下を実行
wsl --shutdown
wsl -l -v
WSL2 側から Ubuntu がシャットダウンできないのはなんでなんやろなぁ…。
仮想 HDD ファイルをシステムドライブから移動
仮想 HDD ファイル ext4.vhdx は肥大化するので C: ドライブから移動させておきます(個人的な趣味)。レジストリの
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}
の下の【BasePath】に ext4.vhdx のディレクトリパスが書いてあるのでそこから適当にコピーして、レジストリ値も修正。今回は D:/virtual/wsl2.ubuntu/ にコピー。
参考 Moving WSL2 to a new drive : r/wsl2
再度 Ubuntu を起動して D:/virtual/wsl2.ubuntu/ext4.vhdx が使われていることを確認。
apt リポジトリのミラーサーバーを変更
apt リポジトリのミラーサーバーを ICSCoE に変更してからシステムを更新。
sudo sed -i.bak -r 's@http://(jp\.)?archive\.ubuntu\.com/ubuntu/?@https://ftp.udx.icscoe.jp/Linux/ubuntu/@g' /etc/apt/sources.list.d/ubuntu.sources
sudo apt -y update; sudo apt -y upgrade;
ICSCoE は激速だけどたまに落ちてるらしいので注意。
WSL2 へのメモリ割り当てを固定
C:\Users\<username>\.wslconfig に以下を追加。
[wsl2]
memory=4GB
swap=0
割り当てるメモリサイズとスワップファイルは様子を見ながら変更する予定。
当初は「GUI も無いし 2GB で十分やろ」って思ってたら VS Code 連携した途端に 1.2GiB ほどメモリを消費されてゲスト OS(Ubuntus)が落ちてしまうことがわかり、4GB に変更。
wsltty をインストール
ターミナルは Cygwin でも使ってるしシンプルなのが好きなので wsltty をインストール。
ポータブル版を任意のディレクトリに解凍すると wsltty ディレクトリが作成されるので、bin にある mintty.exe のショートカットを作成して以下のように設定。
C:\<example_path>\wsltty\bin\mintty.exe --WSL= --position=894,33 --size=80,37 --icon=D:/virtual/wsl2.ubuntu/shortcut.ico --configdir=C:\<config_dir>\ -~ -
ウィンドウ位置やサイズを固定したり、設定ファイルの場所を指定したり。アイコンは WSL2 の Ubuntu のものを使用。
設定ファイルは %APPDATA%/wsltty/config を --configdir で指定したディレクトリに複製してCygwin で使っている .minttyrc を参考にしながら編集。Cygwin と区別しやすいようにダーク系のテーマを選択。
BoldAsFont=no
Font=MeiryoKe_Console
FontHeight=11
CursorType=block
CursorColour=64,0,0
Locale=
Charset=
Scrollbar=none
Transparency=off
OpaqueWhenFocused=no
ThemeFile=nord
PowerShell での使用が前提の .bashrc を修正。色関係をコメントアウトして、プロンプトをシンプルに。
# 色関係(*color*)を全部コメントアウト
# プロンプトをシンプルに
PS1="$ "
このへんはお好みで。
Windows 側から WSL2 のフォルダにアクセスできない場合
WSL2(Ubuntu) は起動しているのに \\wsl.localhost\Ubuntu\ にアクセスできない場合がありました。調べてみたら以下の記事が(多謝)。
参考 WSLのフォルダにエクスプローラーからアクセスできない #WSL2 - Qiita
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
の【ProviderOrder 】を修正。
cbfsconnect2017,WinFsp.Np,RDPNP,LanmanWorkstation,webclient,P9NP
となっていたのを
cbfs6,P9NP,RDPNP,LanmanWorkstation,webclient
に変更したらアクセスできるようになりました。WSL2 で使用されている Plan 9 プロトコルの優先順位を上げる感じ(多分)。
WSL2 に Windows の PATH が追加されているのを削除
WSL2(Ubuntu) で PATH を確認すると Windows 側のディレクトリパスが含まれています。「なんでやねん…」って感じですが。
参考 WSL2でWindowsのPATH設定が引き継がれるのを解除する
/etc/wsl.conf に以下を追加。
[interop]
appendWindowsPath=false
WSL2(Ubuntu) の自動起動設定
WSL2(Ubuntu) が自動起動しないことよりも、WSL2(Ubuntu) のターミナルウィンドウを閉じると WSL2(Ubuntu) が勝手にシャットダウンされてしまうのが困るので。
参考 WSL2を自動起動する設定 #Windows11 - Qiita
ThinkPad で使うので【コンピューターをAC電源で使用している場合のみタスクを開始する】のチェックは外しておく。
とりあえず以上で WSL2 + Ubuntu のインストールと設定は完了。
Claude Code と VS Code 連携
ここからが本題。WSL2(Ubuntu) に Claude Code をインストールして VS Code と連携させます。
Claude を WSL2 にインストール
ネイティブ版をインストールするので Node.js のインストールは不要。
curl -fsSL https://claude.ai/install.sh | bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
claude --version
バージョンが表示されればおk。
Anthropic アカウント認証
サブスクリプション契約している Anthropic アカウントと連携させます。以下を実行。
claude
初回実行時にブラウザ認証のURLが表示されるので、URLをコピーして Windows 側のブラウザで開く → Anthropic アカウントでログイン → 認証コードが表示されたら、ターミナルに貼り付けて Enter でおk。
VS Code の WSL 機能拡張をインストール
Windows 側の VS Code を WSL2(Ubuntu) と連携させるための機能拡張をインストールします。
WSL2 から起動しやすいように VS Code の本体 code.exe のシンボリックリンクを作成。
sudo ln -s '/mnt/c/Users/<username>/AppData/Local/Programs/Microsoft VS Code/bin/code' /usr/local/bin/code
作成したシンボリックリンクからプロジェクトディレクトリを指定して VS Code を起動。初回起動時に VS Code Server for Linux x64 なるものが自動でインストールされる。
$ code ~/httpdocs/<projectname>/
Installing VS Code Server for Linux x64 (10c8e557c8b9f9ed0a87f61f1c9a44bde731c409)
Downloading: 100%
Unpacking: 100%
Unpacked 4168 files and folders to /home/<username>/.vscode-server/bin/10c8e557c8b9f9ed0a87f61f1c9a44bde731c409.
Looking for compatibility check script at /home/<username>/.vscode-server/bin/10c8e557c8b9f9ed0a87f61f1c9a44bde731c409/bin/helpers/check-requirements.sh
Running compatibility check script
Compatibility check successful (0)
$
VS Code が起動すると以下のようなダイアログが表示されるので「親フォルダー ~」にチェックを入れて【はい、作成者を信頼します】をクリック。

VS Code が無事起動したは良いものの、今まで VS Code で使っていた機能拡張のほとんどが使えなくなっている。

機能拡張のサイドバーを確認すると【WSL: Ubuntu にインストールする】というボタンが表示されているので必要なものについてはクリックしてインストールすると無事使えるようになった。(どういう仕組みかよくわからない)
PHP 8.3
僕の仕事は WordPress のテーマ開発が主なので使用言語は PHP ばかり。VS Code の WSL 機能拡張を使う際に WSL2(Ubuntu) 側の PHP をバリデーションに使うようにするためにインストール。
sudo apt -y install php8.3 php8.3-mbstring
インストール後に Ctrl + Shift + P で【Preferences: Open User Settings (JSON)】を開いて php.validate.executablePath を修正しようとすると「この設定は、このウィンドウでは適用できません。ローカル ウィンドウを開いたときに適用できます。」と表示されます。なんやろ?って思ったら WSL2 側の設定で指定せなあかん模様。
参考 VSCode Remote DevelopmentにおけるRemote側のエディタ設定について #RemoteDevelopment - Qiita
Ctrl + Shift + P で【Preferences: Open Remote Settings (JSON)】を開いて以下を追記 or 修正。
"php.validate.executablePath": "/usr/bin/php"
Claude Code に制限をかける
~/.claude/settings.json にいろいろ書く。
以上でとりあえず準備完了。あとは Claude Code と楽しい会話をするだけ。
