Windows 11でWindows Subsystem for Linuxを設定する方法



WSL を起動して実行するには、最初は少し混乱するかもしれません。特に、仮想マシンの手間をかけずに Windows 上で Linux 環境を構築しようとしている場合はなおさらです。Windows では、単なる仮想マシンではなく、ネイティブ アプリのように統合された方法で Linux を実行できるようになったのは少し奇妙です。しかし、確かに、トラブルシューティングが簡単ではない場合があります。Windows エクスプローラーから Linux ファイルシステムにアクセスしようとしたときに、「wsl.localhost にアクセスできません」というメッセージが表示されたり、何かが正しく機能していないように見える場合があります。イライラしますが、多くの場合、一見しただけでは必ずしも明らかではない Windows のネットワーク構成やレジストリの調整に起因しています。幸い、いくつかの主要なコマンドとレジストリの編集でこれを修正できます。ただし、慣れていない場合はレジストリをいじらないでください。もちろん、Windows はレジストリを必要以上に難しくする必要があります。

「wsl.localhostにアクセスできません」エラーを修正する方法

最善の解決策: 適切な通信を可能にするためのレジストリ編集

このエラーは通常、ファイルエクスプローラーからLinuxファイルシステムに初めてアクセスしようとしたときに表示されます。Windowsはこれをネットワークデバイスへの接続として扱いますが、仮想接続がブロックされたり、構成が誤っていたりすることがあります。一般的な解決策としては、レジストリを編集してWindowsにLinux環境が有効なネットワークリソースであることを伝えます。これにより、WindowsはWSLのネットワークインターフェースと適切に通信できるようになります。つまり、システムに「大丈夫だよ。ネットワーク共有と同じようにLinuxファイルにアクセスさせてくれ」と伝えていることになります。

念のため:設定によっては、この修正がすぐには機能せず、再起動やシステムの再起動が必要になる場合があります。それ以外の場合は、1回でうまくいくこともあります。もちろん、レジストリをいじると、注意しないと問題が発生する可能性があるため、必ず事前にレジストリのバックアップを作成してください。手順は以下のとおりです。

  1. レジストリエディタを開きます。 を押しWindows + R、 と入力しregedit、 を押すことで開くことができますEnter
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrderに移動します。手動で移動することも、レジストリエディターのアドレスバーに貼り付けることもできます。
  3. PROVIDERORDERをダブルクリックします。プロバイダーの一覧が表示されます。たとえば、 のようになりますMicrosoftPP2, AnotherProvider
  4. リストの先頭にP9NP (スペースなし、テキストのみ)をカンマで区切って追加します。例えば、 の場合はMicrosoftPP2, AnotherProviderに変更しますP9NP, MicrosoftPP2, AnotherProvider。「OK」をクリックします。
  5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\ProviderOrderに移動します。
  6. 同じことを繰り返します。PROVIDERORDER をダブルクリックし文字列の先頭にコンマで区切ってP9NPを追加します。
  7. レジストリエディターを閉じてWindowsを再起動します。再起動したら、ファイルエクスプローラーを開き、「This PC」に移動して、 Linux (または場合によってはWSL)でLinuxファイルにアクセスできるかどうかを確認します。

私の経験では、この調整を行うと、WindowsからLinuxファイルシステムにアクセスでき、ランダムなエラーが発生することはありません。変更後にWindowsを再起動するだけで十分な場合もありますが、完全に再起動した方が良い場合もあります。Windowsは単純な処理を複雑にするのが好きなので、当然のことです。

失敗が続く場合のその他のトラブルシューティングのヒント

オプション1: WSLサービスを再起動する

登録を編集しても問題が解決しない場合は、WSLサービスを再起動してみてください。これは、いわば最初からやり直すようなものです。PowerShellを管理者として開き、以下を実行します。

Restart-Service LxssManager

これにより、アクセスをブロックするネットワークの問題が解決される可能性があります。

オプション2: Linuxディストリビューションをリセットする

Linuxディストリビューション自体の動作がおかしくなったり、破損したりしている場合は、リセットを検討してください。Windowsの設定から「アプリと機能」を選択し、お使いのLinuxディストリビューション(Ubuntuなど)を見つけてクリックし、「詳細オプション」を選択して「リセット」を選択してください。ただし、この操作によりディストリビューション内のファイルが削除される可能性があるため、必要に応じてバックアップを取ってください。

オプション3: WSLのバージョンとネットワーク設定を確認する

WSLが正しく設定されていることを確認してください。PowerShellで次のコマンドを入力してバージョンを確認してください。

wsl -l -v

可能であれば、ディストリビューションがWSL 2で動作するようにしてください。WSL 2はネットワークをより堅牢に処理します。WSL 2をデフォルトに設定するには、次のコマンドを使用します。

wsl --set-default-version 2

それでも問題が解決しない場合は、セットアップの互換性の問題かどうかを確認するために、WSL 1 に戻してください。

Windows、WSL、そしてネットワークの間で奇妙な連携がありますが、これらの調整で通常は接続がスムーズに進むようになります。面倒ではありますが、少なくともすべてを最初から再インストールしなくても修正できます。

まとめ

  • ネットワークプロバイダーの順序に関するレジストリ編集は、「アクセスできない」エラーを修正する鍵となることが多い
  • 変更後にWSLまたはWindowsを再起動します
  • それでもダメなら、WSLのバージョンとネットワーク設定を確認してください
  • いじる前に必ずレジストリのバックアップを作成してください

まとめ

正直に言うと、WSLの設定と接続問題の修正は確かに大変な作業です。しかし、一度うまく動作すれば、Windowsに統合された本格的なLinux環境が手に入ります。仮想マシンは必要ありません。これにより、システム間のファイルアクセスやLinux専用ツールのWindowsからの直接実行が非常に簡単になります。この調整で最初のハードルを乗り越えられることを願っています。これで試行錯誤の時間が数時間短縮されることを願っています。Windowsのレジストリ編集は決して楽しいものではありませんが、時には必要なこともありますからね。



この記事は役に立ちましたか?