WSL2のトラブルシューティング入門|インストール・起動エラーを自分で解決する方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > WSL2のトラブルシューティング入門|インストール・起動エラーを自分で解決する方法
「WSL2をインストールしたのにエラーが出て起動しない」
「wsl --install したのに Distribution not found と表示される」

WSL2の導入でつまずく初心者は少なくありません。エラーメッセージが英語で表示され、何が原因なのかさっぱり分からない——そんな経験をした方も多いはずです。

この記事では、WSL2のインストール・起動・ネットワークでよく発生するエラーとその解決法を、Windowsのコマンド操作から丁寧に解説します。エラーコードの読み方から実際の対処手順まで、初心者が自分で解決できるように具体的な手順で説明します。

この記事のポイント

・WSL2の主なエラーは「仮想化設定」「Windowsの機能」「ディストリの未インストール」の3つ
・PowerShellを管理者権限で実行するとほとんどのエラーは解決できる
・ネットワーク接続できない場合は wsl --shutdown から再起動が基本手順
・ファイル権限エラーは /etc/wsl.conf の設定変更で解消できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

WSL2でよく出るエラーの種類を知っておこう

WSL2のエラーは大きく3つの段階で発生します。

インストール段階:wsl --install がうまく動かない
起動段階:インストール後にディストリビューションが起動しない
使用中:ネットワークにつながらない、ファイルの権限がおかしい

エラーメッセージを見ると英語で不安になりますが、意味を知れば自分で解決できるものばかりです。一つひとつ確認していきましょう。

インストール時のエラーと対処法

1. 「仮想マシンプラットフォームのオプションコンポーネントが有効になっていません」が出た場合

WSL2はWindowsの「仮想マシンプラットフォーム」機能が必要です。この機能が無効だとインストール自体が進みません。

PowerShellを管理者権限で起動し、以下を実行します。

# PowerShellを管理者権限で実行する # スタートメニューで「PowerShell」を右クリック→「管理者として実行」 # 仮想マシンプラットフォームを有効化 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # WSL機能を有効化 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 実行後は必ず再起動する Restart-Computer

再起動後、再度 `wsl --install` を実行してください。

2. 「Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS」が出た場合

これはBIOSレベルで仮想化機能(Intel VT-x または AMD-V)が無効になっている状態です。

まずWindowsのタスクマネージャーで仮想化が有効かを確認します。

# PowerShellで仮想化の対応状況を確認 systeminfo | findstr /C:"Hyper-V" # 出力例(すべて「はい」になっていれば問題なし) # Hyper-V の要件: VM モニター モード拡張機能: はい # 仮想化が有効にされています: はい # 第 2 レベルのアドレス変換: はい # データ実行防止が使用可能: はい # 「仮想化が有効にされています: いいえ」の場合はBIOS設定が必要

BIOSの設定変更手順はPC・マザーボードのメーカーによって異なります。PCを再起動してF2やDeleteキーでBIOS画面に入り、「Intel Virtualization Technology」または「AMD-V」を有効にしてください。

3. 「wsl --install」が途中でフリーズする・終わらない場合

WSLのコアパッケージ更新が必要な場合があります。

# WSLカーネルを最新版に更新する wsl --update # 更新後、インストールを再試行 wsl --install -d Ubuntu # 実際の出力例 # Ubuntu is already installed. # Launching Ubuntu... # (ここでユーザー名とパスワードの設定画面になれば成功)

起動時のエラーと対処法

1. 「There is no distribution with the supplied name.」が出た場合

インストールしたつもりのディストリビューション(Ubuntu等)が実際には登録されていない状態です。

# まず登録されているディストリビューションを確認 wsl --list --verbose # 出力例(インストール済みであれば表示される) # NAME STATE VERSION # * Ubuntu Stopped 2 # 何も表示されない場合はインストールが完了していない # Ubuntuをインストールする場合 wsl --install -d Ubuntu # 利用可能なディストリビューション一覧を確認 wsl --list --online

2. 「0x8007019e」エラーが出た場合

これはWSLサービス自体が起動していないときに発生します。

# WSLをシャットダウンして再起動する wsl --shutdown # 少し待ってからWSLを起動 wsl # それでも解決しない場合は、WSL機能を再登録する # (管理者権限のPowerShellで実行) Get-AppxPackage -AllUsers -Name "MicrosoftCorporationII.WindowsSubsystemForLinux" | Reset-AppxPackage

3. 「WslRegisterDistribution failed with error: 0x80370102」が出た場合

このエラーはBIOSの仮想化設定が原因のケースが多いです。「インストール時のエラー2番」で解説したBIOS設定を確認してください。

【注意】BIOSの設定変更はPCのメーカーや機種によって手順が異なります。設定項目の名称が異なる場合があるため、PC付属のマニュアルやメーカーのサポートページも参照してください。

また、Hyper-VやWindows Defender ApplicationGuardが干渉しているケースもあります。

# Hyper-Vの状態確認 Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V # 実際のエラー確認には wsl --status が便利 wsl --status # 出力例 # 既定のディストリビューション: Ubuntu # 既定のバージョン: 2 # Linux 用 Windows サブシステムの最終更新日: 2026/06/01

WSL2のネットワーク接続トラブルと対処法

1. WSL2内からインターネットに接続できない場合

WSL2は起動するたびにWindowsホストの仮想NICから外部へ接続します。Windows側のDNS設定やファイアウォールが影響することがあります。

# WSL2内のシェルで実行 # まずpingで接続を確認 ping -c 3 8.8.8.8 # 実際の出力例(接続OKの場合) # PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. # 64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=12.4 ms # 64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=11.9 ms # DNSが引けない場合は /etc/resolv.conf を確認 cat /etc/resolv.conf # 出力例 # nameserver 172.22.240.1

IPには接続できるがDNSが解決できない場合は、`/etc/resolv.conf` を手動で設定します。

# /etc/wsl.conf にDNS自動生成を無効にする設定を追加 sudo sh -c 'echo "[network] generateResolvConf = false" >> /etc/wsl.conf' # /etc/resolv.conf を手動で設定(GoogleのDNSを使う例) sudo sh -c 'echo "nameserver 8.8.8.8 nameserver 8.8.4.4" > /etc/resolv.conf' # WSL2を再起動して設定を反映 # (PowerShellで実行) # wsl --shutdown

2. WSL2からWindowsのlocalhost(127.0.0.1)に接続できない場合

WSL2の仮想NICとWindowsの間はNAT越しの通信になっているため、`localhost` でWindowsのサービスに接続できないことがあります。

# WSL2内でWindowsホストのIPアドレスを確認する ip route show | grep -i default # 出力例(デフォルトゲートウェイがWindowsのIP) # default via 172.22.240.1 dev eth0 proto kernel # WindowsホストへのアクセスはそのIPアドレスを使う # 例: Windows上で動くMySQL(3306番ポート)に接続する場合 # mysql -h 172.22.240.1 -u root -p

Windows 11以降では `/etc/wsl.conf` に `[wsl2] localhostForwarding=true` を追加することで `localhost` が使えるようになります。

ファイルの権限・パーミッションのトラブルと対処法

1. WindowsのCドライブにあるファイルの権限が777になる場合

WSL2からWindowsのファイルシステム(/mnt/c/等)にアクセスすると、デフォルトでは全ファイルが権限777(誰でも読み書き実行可)として表示されます。これは仕様ですが、シェルスクリプトの実行などで問題になることがあります。

# /mnt/c/ のファイル権限確認(デフォルトでは777になる) ls -la /mnt/c/Users/ # 出力例 # drwxrwxrwx 1 tomohiro tomohiro 4096 Jul 1 08:00 tomohiro # /etc/wsl.conf でメタデータを有効化すると権限が正確に扱える sudo nano /etc/wsl.conf # 以下の内容を追加 # [automount] # options = "metadata" # WSL2を再起動して設定を反映 # PowerShellで: wsl --shutdown # その後 Ubuntu を起動

2. 「Permission denied」が出た場合

WSL2のLinux環境内でファイルを操作しているときに発生する `Permission denied` は、LinuxのパーミッションルールがWindowsと異なるために起こります。

# ファイルの現在の権限と所有者を確認 ls -la /home/tomohiro/script.sh # 出力例 # -rw-r--r-- 1 tomohiro tomohiro 125 Jul 1 08:00 script.sh # スクリプトに実行権限を付与 chmod +x /home/tomohiro/script.sh # 再確認 ls -la /home/tomohiro/script.sh # -rwxr-xr-x 1 tomohiro tomohiro 125 Jul 1 08:00 script.sh # root権限が必要なファイルを操作する場合 sudo chmod 644 /etc/配下のファイル

WSL2のトラブルシューティングでよく使うコマンドまとめ

やりたいこと コマンド(PowerShell or WSL2内)
WSL2のバージョンとステータス確認 wsl --status
インストール済みディストリ一覧 wsl --list --verbose
WSL2のシャットダウン(全体) wsl --shutdown
WSLカーネルの更新 wsl --update
特定ディストリのアンインストール wsl --unregister Ubuntu
ネットワーク疎通確認(WSL2内) ping -c 3 8.8.8.8
DNS設定確認(WSL2内) cat /etc/resolv.conf
ファイル権限確認(WSL2内) ls -la ファイルパス
WSL2設定ファイルの確認 cat /etc/wsl.conf
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

本記事のまとめ

WSL2のトラブルは種類が多く見えますが、原因のほとんどは「Windows機能が有効化されていない」「BIOS設定が間違っている」「WSLのカーネルが古い」の3つに集約されます。

エラーコードに怖じ気づかず、まずは `wsl --status` でステータスを確認し、次に `wsl --update` でカーネルを更新する——この2ステップで多くのケースが解決します。

それでも解決しない場合は、管理者権限のPowerShellで `wsl --shutdown` を実行してから起動し直すのが定石です。

WSL2が安定して動くようになったら、次はLinuxのコマンド操作やサーバー設定を学んでいきましょう。以下の記事も参考にしてください。

ipコマンドでネットワーク設定を確認・変更する方法|ifconfigとの違いやアドレス追加も
systemctlコマンドでLinuxのサービスを管理する方法|start・stop・enable・statusの使い分けも
lsofコマンドでプロセスが使用中のファイルを確認する方法|ポートやネットワーク接続の調査も
Linuxのファイル権限完全ガイド|chmod・chown・umaskの基礎と実務でよく使う設定
scpコマンドでファイルを安全に転送する方法|公開鍵認証やディレクトリごとコピーも
ssh-keygenコマンドでSSH公開鍵認証を設定する方法|鍵の生成からauthorized_keys設定まで
ssコマンドでソケット情報を確認する方法|LISTEN・ESTABの見方やポート確認も

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。