WSL「ここでLinuxシェルを開く」が現在のディレクトリで開かない

WSL「ここでLinuxシェルを開く」が現在のディレクトリで開かない

Shift キーを押しながらフォルダーを右クリックすると、ここに Linux シェルが開いていることが表示されます。
ただし、たとえばドライブにいる場合は、D:どのフォルダーにいるかに関係なく、常に から始まる Linux シェルが開きます/mnt/d

その理由は何でしょうか?

答え1

おそらく起動スクリプト内の何かが干渉していると思われますが、トラブルシューティングを進めていきましょう。

まず、「ここで Linux シェルを開く」を選択したときに Windows が使用しているコマンドを確認しましょう。PowerShell の場合:

(Get-ItemProperty -name "(default)" -LiteralPath Registry::HKEY_CLASSES_ROOT\Directory\shell\WSL\command).'(default)'

結果は になるはずですwsl.exe --cd "%V"が、そうなっていると思います。そうでない場合は、レジストリを編集して修正できます。

ただし、PowerShell からもそのコマンドを試してみましょう。

wsl.exe --cd "D:\some directory"(明らかに、一部のディレクトリはドライブ上に存在するものに置き換えられます)。

右クリックと同じ結果になると思います。つまり、目的のディレクトリではなく、D:\ に移動することになります。しかし、するうまく動作しない場合は、右クリックの「プログラムから開く」コマンドとの違いについてさらに調査する必要があります。

さあ、成功できるか試してみましょう仕事CLI から。次を試してください:

wsl.exe --cd "D:\some directory" -e bash --noprofile --norc

それがうまくいくことを願っています。これは、問題があなたの.profileまたは.bashrc(または別の起動スクリプト) にあることを示しています。

もしそうなら、 に影響を与える可能性のある、行った起動スクリプトのカスタマイズを追跡できるかどうかを確認してくださいcd。変更が何らかのインストーラーによって行われた可能性もあります。あるいは、一部のディストリビューションの標準の起動スクリプトが問題である可能性もあります。使用しているディストリビューションについては言及していませんが、私の場合は Ubuntu 20.04 で正常に動作しています。

関連情報