WSLに関連ルートをマウントできますか?

WSLに関連ルートをマウントできますか?

subst R: .フォルダにアクセスするより高速な方法を使用しました。

R:WSLに「ドライバ」をインストールできますか?実行しようとすると、sudo mkdir /mnt/r次のsudo mount -t ntfs R: /mnt/rエラーが発生します。

ntfs-3g: Failed to access volume 'R:': No such file or directory

ntfs-3g 2017.3.23AR.3 integrated FUSE 28 - Third Generation NTFS Driver

Configuration type 7, XATTRS are on, POSIX ACLS are on
Copyright (C) 2005-2007 Yura Pakhuchiy
Copyright (C) 2006-2009 Szabolcs Szakacsits
Copyright (C) 2007-2017 Jean-Pierre Andre
Copyright (C) 2009 Erik Larsson 

Usage:    ntfs-3g [-o option[,...]] <device|image_file> <mount_point>

Options:  ro (read-only mount), windows_names, uid=, gid=,
umask=, fmask=, dmask=, streams_interface=.
Please see the details in the manual (type: man ntfs-3g).

Example: ntfs-3g /dev/sda1 /mnt/windows

News, support and information:  http://tuxera.com 

よろしくお願いします!

StackOverflowに同じ質問をしましたが、正しい場所ではないことに気づきました...

ベストアンサー1

WSLはそうではありませんが、自動でも直接ドライブにアクセスするには、substドライブをマッピングする方法がいくつかあります。特定のワークフローに応じて選択できるさまざまなパスがあります。

覚えておくべき主な点は次のとおりです。

  • Linuxではsudo mount --bind . /mnt/rほぼ同じですsubst R: .。 Linuxに対応する必要があり、Windowsが同じドライブ文字にアクセスする必要がない場合、これはおそらく必要なものです。substWindows機能と非常によく似たbash機能を作成することもできます。

  • つまり、bindここには多少の過剰がある可能性があります。たとえば、ln -s /mnt/c/Users/username ~/r宛先の場所に対する権限がある限り、ルートは必要ありません。

  • Windowsを使用して作成したマッピングの場合は、PowerShellを呼び出してLinuxで指定されたパスを取得できます subst。たとえば、次のようになります。substpowershell.exe -c subst

  • grepsed: を使用して、これを R: マッピングでのみフィルタリングできますpowershell.exe -c "subst" | grep "^R" | sed "s/^R:\\\\: => //"(複数のドライブ/ディレクトリがある場合は、substR: ドライブのみを検索し、ディレクトリ パスの前のすべてのエントリを削除します)。

  • PowerShellは追加の改行( " \ r ")を返すため、次のようなものを使用する必要がありますtr -d "\r"

  • 次のコマンドを使用して、Windowsパスを同等のLinux / WSLパスに変換できますwslpath

それらを組み合わせると、R:を次に変換できるスクリプトがあります/mnt/r(または~/rそれがより便利な場合)。

rpath=$(powershell.exe -c "subst" | grep "^R" | sed "s/^R:\\\\: => //" | tr -d "\r")
sudo mount --bind $(wslpath "${rpath}") /mnt/r/

またはそれに対応するln

もちろん、繰り返しやすくするために機能に割り当てる必要があります。

おすすめ記事