WSL2が機能しない?LinuxエラーのためのWindowsサブシステムを修正する

すべてのソフトウェアと同様に、Windowsサブシステム(WSL2)にもかなりの問題があります。このガイドでは、Linux用のWindowsサブシステムのエラーメッセージとコードのトラブルシューティングを行います。

Linuxエラー、問題、および問題のWindowsサブシステムを修正する

これらは、LinuxエラーメッセージとコードのWindowsサブシステムのトラブルシューティングを行うメッセージです。

  1. WSL 2のオプションが表示されない
  2. エラー: 0x1bc
  3. インストール時のエラー: 0x80040306
  4. WindowsからWSLファイルにアクセスできない
  5. WSL 2ディストリビューションを開始できず、出力に「WSL 2」のみが表示される
  6. コマンドが見つかりません
  7. エラー: 0x80370102 必要な機能がインストールされていないため、仮想マシンを開始できませんでした
  8. Windowsの更新後にエラー: 0x80040154
  9. WSLがエラー0x80070003で動作を停止する
  10. WSLの表示言語が変更される
  11. Windowsシステムの復元後のインストールの問題
  12. WSLでインターネットにアクセスできない
  13. Pingを使用するときにアクセスが拒否されました
  14. WSL 2をインストールした後にブートできない
  15. ディストリビューター内でWindowsコマンドを実行できない
  16. ICSが無効になっている
  17. Bashがハングする
  18. OpenSSHサーバーの接続の問題
  19. 参照されたアセンブリが見つかりません
  20. (SSH関連の)アクセス許可エラーを修正する

それらについて詳細に説明しましょう。

機能していないまたは動作を停止したWSL2を修正する

1] WSL 2のオプションが表示されない

多くのWindowsユーザーは、ビルド1903であるにもかかわらず、WSL 2のオプションが表示されないことを訴えています。これは、コンピューターマシンがまだWSL 2のバックポートを受け取っていない場合に発生します。

これを修正するには、更新プログラムを確認するだけで済みます。

2] エラー: 0x1bc

「表示言語」または「システムロケール」が英語に設定されていない場合、次のエラーが表示される場合があります。

wsl --set-default-version 2
エラー: 0x1bc
WSL 2との重要な違いに関する情報については、https://aka.ms/wsl2を参照してください

エラーを修正するには、コンピューターにカーネルがインストールされているかどうかを確認する必要があります。それを行うには、次のコマンドを使用します。

dir %SystemRoot%\system32\lxss\tools\kernel

カーネルがない場合は、aka.msからダウンロードします。必ず管理者としてダウンロードし、コンピューターにカーネルをインストールしてエラーを修正してください。

3] インストール時のエラー: 0x80040306

インストール時にエラー: 0x80040306が表示されている場合。これを修正するには、レガシコンソールを無効にする必要があります。それを行うには、次の手順に従います。

  1. スタートメニューから管理者としてコマンドプロンプトを開きます。
  2. cmdロゴを右クリックし、[プロパティ]を選択します。
  3. 「レガシコンソールを使用する」のチェックを外し、[OK]をクリックします。

最後に、問題が解決したかどうかを確認します。

4] WindowsからWSLファイルにアクセスできない

Windowsで\\wsl$によってLinux用のWindowsサブシステムにアクセスできない場合、これは9Pプロトコルファイルサーバーが起動に失敗したことを意味します。

最も簡単な修正方法は、コンピューターを更新し、「Windows UpdateのMicrosoft製品の更新」を有効にすることです。それを行うには、次の手順に従うことができます。

  1. Win + Iで設定を起動します。
  2. 更新とセキュリティ>詳細オプションをクリックします。
  3. トグルを使用して、「Windowsを更新するときに他のMicrosoft製品の更新も受信する」を無効にします。

これで問題が解決します。

5] WSL 2ディストリビューションを開始できず、出力に「WSL 2」のみが表示される

表示言語が英語に設定されていない場合、このエラーは避けられません。WSL 2を開始しようとすると、次の出力が表示されます。

C:\Users\me>wsl
WSL 2

エラーを修正するには、カーネルを手動でダウンロードしてインストールする必要があります。ファイルはaka.ms/wsl2kernelからダウンロードできます。カーネルをインストールしてエラーを簡単に修正します。

6] コマンドが見つかりません

これは、LinuxでWindowsの.exeファイルを実行するときに発生する一般的なエラーの1つです。同じことをしようとすると、次のエラーが表示される場合があります。

$ notepad.exe
-bash: notepad.exe: コマンドが見つかりません

これは、$PATHが.exeファイルを見つけることができない場合に発生します。このエラーの最善の解決策は、ターミナルで次のコマンドを実行することです。

export PATH=$PATH:/usr/sbin

これを実行して、エラーが修正されるかどうかを確認します。

7] エラー: 0x80370102 必要な機能がインストールされていないため、仮想マシンを開始できませんでした

多くの人がLinuxディストリビューターをインストールしようとするとこのエラーが発生しました。以前のエラーとは異なり、このエラーには複数の解決策があります。だから、覚悟を決めてすべての解決策を読んでください。

エラー: 0x80370102を修正するためにできることは次のとおりです。必要な機能がインストールされていないため、仮想マシンを開始できませんでした。

  1. Hyper-Vを有効にする
  2. ハードウェア仮想化を有効にする
  3. ネストされた仮想化を有効にする

それらについて詳細に説明しましょう。

Hyper-Vを有効にする

Hyper-Vがなければ、仮想環境を作成することはできません。したがって、次の手順に従って有効にします。

  1. スタートメニューからコントロールパネルを開きます。
  2. プログラムと機能> Windowsの機能の有効化または無効化をクリックします
  3. 下にスクロールしてHyper-Vを見つけ、チェックして[OK]をクリックします。

Hyper-Vを有効にした後、問題が解決したかどうかを確認します。

ハードウェア仮想化を有効にする

ハードウェア仮想化は、仮想マシンを実行しようとする場合に必須です。したがって、エラー: 0x80370102が発生した場合は、BIOSからハードウェア仮想化を有効にして問題を修正してみてください。

ネストされた仮想化を有効にする

ネストされた仮想化により、VM内でハイパーバイザーを実行できます。したがって、それでもエラーが発生する場合は、ネストされた仮想化を有効にしてみてください。それを行うには、管理者としてPowerShellを実行し、次のコマンドを実行する必要があります。

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

このコマンドを実行し、問題が解決したかどうかを確認します。

8] Windowsの更新後にエラー: 0x80040154

Windowsの更新によりLinux用のWindowsサブシステムが無効になっている場合、このエラーが表示されることがあります。したがって、問題を修正するには、このオプションを有効にする必要があります。それを行うには、次の手順に従います。

  1. スタートメニューからコントロールを起動します。
  2. プログラムと機能> Windowsの機能の有効化または無効化をクリックします
  3. 下にスクロールしてLinux用のWindowsサブシステムを見つけ、チェックして[OK]をクリックします。

最後に、コンピューターを再起動して問題が解決したかどうかを確認します。

9] WSLがエラー0x80070003で動作を停止する

WSLがこのエラーコード0x80070003で停止する場合は、このガイドで解決します。簡単に言えば、これを行います。

  • Windowsの設定を開きます
  • システムに移動します。
  • 下にスクロールしてストレージを選択します。
  • その他のストレージ設定セクションに切り替えます。
  • 新しいコンテンツを保存する場所を変更をクリックします。
  • 新しいアプリは保存するオプションのドロップダウンボタンを押します。
  • 目的の場所を選択します。

10] WSLの表示言語が変更される

WSLはUbuntuのロケールを自動的に変更して、Windowsコンピューターの言語と一致させます。この動きが気に入らない場合は、次のコマンドを使用して、必要に応じて表示言語を設定します。

注意: 次のコマンドは言語をen-USに変更します。

sudo update-locale LANG=en_US.UTF8

これを実行して、問題が解決したかどうかを確認します。

11] Windowsシステムの復元後のインストールの問題

Windowsシステムの復元後にインストールの問題が発生した場合は、Linux用のWindowsサブシステムフォルダーを削除してみてください。そのパスは次のとおりです。

%windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux

コンピューターを再起動し、Bashを再インストールして問題が解決したかどうかを確認します。

12] WSLでインターネットにアクセスできない

多くのユーザーは、WSLでインターネットにアクセスできないと報告しています。ただし、解決策はあなたが思うよりも簡単かもしれません。これは、使用しているサードパーティのアンチウイルスが原因で発生します。ファイアウォールがインターネットをブロックするためです。したがって、これを修正するには、アンチウイルスを削除してください。

13] Pingを使用するときにアクセスが拒否されました

WSLでPingできない場合は、管理者権限がないことを意味します。したがって、UbuntuとLinuxを管理者権限で実行するか、コマンドラインインタープリターでBash.exeを管理者権限で実行する必要があります。

うまくいけば、これで問題は簡単に解決するでしょう。

14] WSL 2をインストールした後にブートできない

WSL 2をインストールした後にブートできない理由はまだ不気味ですが、Microsoftは問題を完全に診断するための更新に取り組んでいます。ただし、2つのことを行うことで問題が解決するかどうかを確認できます。

  • システムの復元ポイントを使用してエラーを修正します。
  • グラフィックドライバーを更新して問題が解決したかどうかを確認します。

15] ディストリビューター内でWindowsコマンドを実行できない

Windowsストアには、すべてのWindowsコマンドを実行するように完全に最適化されていないディストリビューターがいくつかあります。次のエラーのいずれかが発生する可能性があります。

-bash: powershell.exe: コマンドが見つかりません
powershell.exe /c start

このエラーを修正するには、次のコマンドを実行します。

echo $PATH

次に、出力に「/mnt/c/Windows/system32」が含まれているかどうかを確認します。エラーが発生している場合、おそらくパスは存在しません。

次に、次の方法でプロファイル設定を確認します。

cat /etc/profile

次に、パス割り当てが「#」で始まるかどうかを確認します。そうであれば、ブロックをコメントアウトします。また、wsl.confが存在し、appendWindowsPath=falseがないことを確認します。存在する場合は、コメントアウトします。

これを行った後、ディストリビューションを再起動する必要があります。これを行うには、次のコマンドを使用できます。

wsl -t <name of the distributor>

または

wsl --shutdown

うまくいけば、問題は解決するでしょう。

16] ICSが無効になっている

WSLはICS(インターネット接続共有)なしでは動作できません。ホストネットワークサービス(HNS)は、ICSを使用してWSL 2の基本的な仮想ネットワークを構築し、NAT、DNS、DHCP、およびホスト接続共有を作成します。

エラーを修正するには、ICSを有効にする必要があります。したがって、ICSを有効にするには、次の手順に従います。

  1. スタートメニューからサービスを起動します。
  2. インターネット接続共有(ICS)をダブルクリックし、停止している場合は開始をクリックします。
  3. 最後に、[適用] > [OK]をクリックします。

また、一部のポリシーを編集する必要があります。したがって、グループポリシーエディターを起動し、次の場所に移動します。

コンピューターの構成 > 管理用テンプレート > ネットワーク > ネットワーク接続

そして、次のポリシーを無効にします。

  • DNSドメインネットワークへのネットワークブリッジのインストールと構成を禁止する
  • DNSドメインネットワークでインターネット接続ファイアウォールを使用することを禁止する
  • DNSドメインネットワークでインターネット接続共有を使用することを禁止する
  • ネットワークの場所を設定するときにドメインユーザーに昇格を要求する

17] Bashがハングする

Bashがハングまたはデッドロックして入力に応答しなくなった場合は、マシンを再起動してエラーを修正するか、メモリダンプを報告します。後者はシステムクラッシュにつながる可能性があるため、報告する前に作業を保存してください。

18] OpenSSHサーバーの接続の問題

OpenSSFサーバーの接続の問題が発生した場合は、まずOpenSSHサーバーが実行されているかどうかを確認する必要があります。それを行うには、次のコマンドを使用できます。

sudo service ssh status

実行されていない場合は、次のコマンドを使用してサービスを開始します。

sudo service ssh start

実行されている場合は、次のコマンドでサービスを再起動して問題が解決したかどうかを確認する必要があります。

sudo service ssh restart

問題を解決できない場合は、デバッグモードでSSHDを起動してみてください。その前に、次のコマンドを使用してSSHサービスを停止します。

sudo service ssh stop

これで、次のコマンドを使用してデバッグモードでSSHDを起動します。

sudo /usr/sbin/sshd -d

うまくいけば、これでエラーが修正されます。

19] 参照されたアセンブリが見つかりません

多くのユーザーは、WSLの追加機能を有効にしようとしたときに「参照されたアセンブリが見つかりません」というエラーが発生しています。あなたがその一人である場合、コントロールパネルからLinux用のWindowsサブシステムを有効にしてコンピューターを更新してみてください。うまくいけば、それでエラーが修正されるでしょう。

20] 正しい(SSH関連の)アクセス許可エラーを修正する

次のエラーが表示されている場合は、このセクションで解決策をスレッド化します。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

この問題を修正するには、Microsoftは/etc/wsl.confファイルに移動して、次を追加することを提案しています。

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

これでエラーが修正されます。これを行う前に、適切な権限があることを確認してください。

これらは、LinuxエラーメッセージとコードのWindowsサブシステムとそれらのトラブルシューティングのヒントの一部でした。それらがWSLのエラー、問題、および問題の修正に役立つことを願っています。