Windows Subsystem for Linux のインストールは、最初は少し戸惑うかもしれません。特に、Windows がさまざまな機能を処理するようになった今となってはなおさらです。有効にしても、すぐには機能しないこともあります。Linux シェルがなかったり、エラーが繰り返し発生したりします。あるいは、インストールしたのにディストリビューションが起動しなかったり、コマンドが見つからない、といったことも考えられます。確かに、Windows ではすべてをスムーズにセットアップするのが必要以上に難しくなるため、うまくいかないとイライラします。このガイドは、よくある落とし穴をトラブルシューティングし、WSL が期待どおりに動作するようにするためのものです。開発、学習、あるいは単なるいじくり回しのいずれの目的でこれを行う場合でも、目標は、最小限の手間で実際に動作する Linux 環境を最終的に実現することです。
Windows Subsystem for Linux のセットアップの問題を修正する方法
WindowsでWSLが適切に有効になっていることを確認してください
これは通常、最初に確認すべき点です。コントロールパネル > プログラム > Windows の機能の有効化または無効化にある小さなチェックボックスが正しく設定されていないと、残りの設定が意味をなさなくなるからです。場合によっては、Windows Subsystem for Linuxにチェックを入れた後でも再起動が必要になることがあります。しかし、それ以上に、新しいバージョンの Windows では、WSL 2 が仮想マシンプラットフォームに依存しているため、仮想マシンプラットフォームも有効になっていることを確認する必要があります。そのためには、両方のチェックボックスをオンにして再起動してください。
DISM /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /NoRestart DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart
その後、PCを再起動してください。設定によっては、両方の機能を有効にしないと動作しない場合があります。念のため、お使いのWindowsのバージョンがWSL 2(Windows 10 バージョン1903以降)をサポートしていることを確認してください。 を押して とWin + R入力しwinver
、最新バージョンであることを確認してください。
WindowsとWSLコンポーネントを更新する
WSLが有効になっているにもかかわらず、ディストリビューションが起動しない、またはコマンドがクラッシュする場合は、すべてを更新することをお勧めします。「設定」>「更新とセキュリティ」>「更新プログラムのチェック」に進みます。小さなパッチでも互換性の問題を修正できます。すべてを有効にしたら、特にWSL 2の場合は、Linuxカーネルを手動で更新する必要があることを忘れないでください。MicrosoftはLinuxカーネル更新パッケージを提供しています。ここから入手してください。インストーラーを実行すると、進行状況バーが表示されます。この手順はスキップされることがよくありますが、WSL 2を完全に機能させるために不可欠です。
必要に応じてLinuxディストリビューションを再インストールまたはリセットします
ディストリビューションをインストールしても起動しない、または動作がおかしい場合は、破損しているか古くなっている可能性があります。修正するには、「設定」>「アプリ」>「アプリと機能」に進みます。Linuxディストリビューションを見つけてクリックし、「詳細オプション」でリセットするか、Microsoft Storeからアンインストールして再インストールしてみてください。場合によっては、削除して再インストールするだけで奇妙なバグが解消されることがあります。例えば、Ubuntuが起動時にクラッシュし続ける場合は、リセットすることでインストール中に問題が発生したエントリポイントを修正できる可能性があります。
トラブルシューティングのために PowerShell から WSL コマンドを実行する
showなどのコマンドでwsl --list --verbose
エラーが発生したり、インストールされているディストリビューションが正しくリストされない場合は、管理者として PowerShellを開き、次の操作を実行します。
wsl --shutdown wsl --update wsl --set-default-version 2
これによりサブシステムがリセットされ、WSL 2 が確実に使用されます。場合によっては、デフォルトのバージョンを切り替えたり、強制的にシャットダウンしたりするだけで、スタックしたプロセスが修正されることがあります。マシンによっては、これらのコマンドを実行した後に再起動すると、より安定することもあります。また、ディストリビューションの WSL バージョンが以下のバージョンと一致しているかどうかもご確認ください。
wsl --list --verbose
バージョン 2 ではない場合は、次のように明示的に設定します。
wsl --set-version 2
BIOS/UEFI設定を再確認してください
ちょっと変な話ですが、BIOS/UEFIで仮想化が無効になっていると、WSL 2は正常に動作しません。マシンを再起動し、BIOSに入り(通常は起動中にDelまたは を押します)、 Intel VT-xやAMD-VF2などの設定を探してください。無効になっている場合は有効にしてください。保存して再起動してください。Windowsでは設定が完了しているように見えても、ハードウェア仮想化は手動で切り替える必要がある場合があります。私の環境では、ハードウェア仮想化を有効にすると、WSL 2が正常に起動しないという多くの問題が解決しました。
さて、それが面倒すぎる場合、または奇妙な状態に陥っている場合は、通常、Microsoft Store 経由で Linux ディストリビューションをアンインストールしてからクリーンに再インストールするか、次のコマンドを使用して WSL を完全にリセットしてみる価値があります。
wsl --unregister
これによりディストリビューションが完全に削除され、破損したデータも消去されます。その後、ストアから新規インストールしてください。
まとめ
- WindowsでWSLと仮想マシンプラットフォーム機能が有効になっていることを確認します
- WindowsとLinuxカーネルパッケージを更新する
- BIOSでハードウェア仮想化をチェックしてオンにする
- 必要に応じて PowerShell コマンドを使用して WSL のバージョンをリセットまたは切り替えます
- ディストリビューションが動作しない場合は再インストールまたはリセットしてください
まとめ
WSL を面倒な手順を踏まずにうまく動作させるのは、特に Windows のアップデートやハードウェアの不具合などを考えると、少々難解です。しかし、一度解決すれば、Windows 内で非常にパワフルな Linux 環境を手に入れることができます。場合によっては、少しの忍耐と BIOS/ターミナルコマンドをいじくり回すことで解決することもあります。それでもうまくいかない場合は、アンインストールして最初からやり直すとうまくいく場合が多いです。この記事が、私と同じようなフラストレーションを誰かが経験する助けになれば幸いです。もちろん、Windows では本来よりも少し複雑にせざるを得ないのは承知の上ですが。