WSL2入門 - WindowsでLinuxを使う方法
この記事でできるようになること
- WSL2 を使って Windows 上に Linux 環境を用意できる
- WSL2 と仮想マシンの違いを理解して使い分けられる
前提知識(先に読むと理解しやすい記事)
WSL2とは何か?
WSL2(Windows Subsystem for Linux 2)は、Windows上でLinuxを動かすための仕組みだ。仮想マシン(PCの中に別のPCを作るソフト)を自分で用意する必要はない。Windows 10(バージョン2004以降)と Windows 11 には、はじめから入っている。
WSL1と比べたWSL2の違いは、完全なLinuxカーネルOS の中核となるプログラム。ハードウェアとソフトウェアの橋渡しをする。(OSのいちばん中心にある部分)を積んでいる点だ。そのため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/UEFI(PCを立ち上げたときに開ける設定画面。UEFIは新しい世代の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環境が使えるようになる。
ここで設定するパスワードは、あとでsudo(管理者としてコマンドを動かす仕組み)を使うときに必要になる。忘れずに記録しておくこと。
特定のディストリビューションをインストールしたい場合
ディストリビューション(Linux本体と付属ソフトをまとめたセット。「ディストロ」とも呼ぶ)は自分で選べる。まず一覧を出し、名前を指定してインストールする。
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が最も適している。理由は2つある。公式ドキュメントが豊富なこと、そしてapt(ソフトの出し入れをまとめて行うパッケージマネージャーソフトウェアのインストールや更新をまとめて行う仕組み。)でほとんどのツールをすぐ入れられることだ。
| ディストリビューション | 特徴 | 推奨対象 |
|---|---|---|
| Ubuntu | ドキュメント豊富・apt管理 | 初心者・一般開発者 |
| Debian | 軽量・安定重視 | サーバー運用経験者 |
| Kali Linux | セキュリティツール特化 | セキュリティ学習者 |
| openSUSE | エンタープライズ向け | 企業環境での学習者 |
迷ったらUbuntuのLTS版(Long Term Support = 長期サポート版)を選ぶのが無難。サポート期間が5年と長く、日本語の情報も多い。
基本的なLinux操作を始めるには?
WSL2を起動する方法は2つある。スタートメニューで「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のエクスプローラーで開く
カレントディレクトリ(今いるディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。)を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)。