Windows 10 の Bash は何もせず、コマンド プロンプトに戻ります

Windows 10 の Bash は何もせず、コマンド プロンプトに戻ります

今日、bash私の Windows 10 マシンが完全に動作しなくなりました。bashコマンド プロンプトから実行すると、約 1 秒間停止し、その後すぐにコマンド プロンプトに戻ります。

ここに画像の説明を入力してください

すでに削除して再インストールしてみましたが、Linux 用 Windows サブシステム" からWindowsの機能をオンまたはオフにします(数回) 関連する再起動を伴います (以下を参照)。

ここに画像の説明を入力してください

再び仕事に戻るために他に何ができるでしょうかbash?

--- 追加情報を編集 ---

wsl.exe -l -vローカル マシンにインストールされているディストリビューションとバージョンを表示する出力:

ここに画像の説明を入力してください

さらに詳しい内容については、UbuntuおよびDebian画像がインストールされましたbash今日より前にコマンドの問題が発生し始めました。

答え1

削除されたコメントがいくつかあるようですが、明確にするために、Microsoft はbash.exeリンク先のページで「過去のコマンド」と呼んでいます。私はこれを「非推奨」とは考えていません (ご指摘のとおり、非推奨のコマンドを明示的にリストしているため)。しかし、「過去の」は、私の意見では「非推奨」の一歩手前です。また、WSL/Windows 相互運用ドキュメントbash.exeは、「交換された wsl.exe「(強調追加)」

とにかく、推奨起動方法としては、(現時点では)wsl.exeコマンドを使用するのが確実です。コマンドの方がオプションが多く、より堅牢だからです。Alpine などのディストリビューションではbashシェルが含まれていない可能性もあるため、いずれにしても少し誤った呼び方です。

それ自体が問題である可能性は低いです。ただ、回復するにはbash.exeの機能が必要になる可能性があります。wsl.exe

UbuntuとDebianをインストールしたことに注意してくださいこの問題が発生し始めました。これは、のみこれに先立って Docker Desktop を実行していますか? WSL の一般的なインストールは次のとおりです。

  • WSL機能自体をインストールする(WSL2カーネルと一緒に)
  • ディストリビューションをインストールする
  • 次にDocker Desktopをインストールします

しかし、インスタンスが2つしかない場合はdocker-desktop*、他のディストリビューションをインストールしていないように見えます。これはあまりお勧めできません。docker-desktopインスタンス起動可能ですが、実際には Docker Desktop の内部使用 (例: Docker ソケットの設定) 用に設計されていると思います。この点については間違っている可能性があります...

bash.exeデフォルトのコンテナが起動しなくなった理由はdocker-desktopよく分かりませんが、おそらくbashの起動構成に関係していると思われます。WSLがエラーメッセージなしで終了する場合、通常は問題があります。内部インスタンス。WSL は stderr をホストにリダイレクトしないようですが、おそらく、まだ詳しく調べていない何らかのリダイレクトが必要なだけでしょう。

何が問題なのかを突き止めるために内部、次のいずれかで起動してみてください。

wsl -e bash --noprofile --norc # Launches without any startup profile
wsl -u root # Launches as root instead of the default user
wsl -e sh # Launches the dash shell instead of bash
wsl -u root -e sh # Same as above, but as root

これらのいずれかが機能する場合は、そこから起動構成のトラブルシューティングを開始できます。ルートとして起動できる場合は、su yourusernameユーザーに切り替えることができます。内部WSL インスタンスでは、Windows コマンド プロンプトから実行するときに抑制できるエラー メッセージが表示されるはずです。

ただし、最終的には、次の方法で別のディストリビューションをデフォルトとして設定することをお勧めします。

wsl --set-default Ubuntu

まだ戻ることができます「docker-デスクトップ」ディストリビューションを使用して、必要なファイルをコピーしますwsl -d docker-desktop(エラーなしで起動するのに役立つ場合は、前述のオプションのいずれかを追加します)。

関連情報