Windows Linuxサブシステムのネットワークマウントされたドライブにアクセスする方法は?


62

ローカルWindowsコンピューターにマウントされているSambaドライブがあります。

WLSに「/ mnt / c」ドライブ(「Windows 10 bash」)がありますが、「/ mnt / z」はありません。

それに何らかの方法でアクセスする方法はありますか?WLSに再マウントできますか?


3
この機能については、Microsoft Developer Feedbackwpdev.uservoice.com/forums/…で議論されています
Nelson

回答:


23

[更新- 明らかにこの機能はビルド16176で利用可能です。まだ試していません。]

いいえ、発見されていないトリックがあります。Linux用Windowsサブシステムは、ネットワークドライブをマウントしません。Microsoftの従業員がここに(コメントで)言っています

現時点では、固定ドライブのみを「マウント」しています。現時点では、USB /リムーバブル/ネットワークドライブは処理されません。この機能はバックログにありますが、すぐにはカードにありません。

息を止めないでください。

次のようなシンボリックリンクを使用して、この問題を回避しようとしました。

c:> mklink /d c:\some\directory \\some_server\some_share

リンクは「通常の」Windows(cmd.exe、PowerShell、ファイルエクスプローラーなど)では正常に機能しますが、WSLには見えません。

$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found

私自身の使用のために、この制限はショーストッパーです。ネットワークドライブには、移動したくないものがあります。代替手段があります。Cygwinを使用しています。


同意しました、これは私にとっても最高です-私はこのためにmsys2をインストールしました。
Ela782


MKLINKへのご引数の順序が間違っている-それがあるべきlinkname targetではないtarget linkname
masterxilo

はい、masterxilo、あなたは正しいです-私はここでmklinkコマンドが間違っていました。一定。実際に試してみたところ、私はそれを正しく行いましたが、WSLに対しては機能しませんでした。WSLがネットワーク共有をマウントできるようになったため、今では重要なポイントです。しかし、修正してくれてありがとう。この答えを見ている人がほとんどいないとしても、そのような間違いを残すのは嫌です。
ジョセフ・スヴェット

109

投稿さたリンクブリーターから

DrvFのマウント

DrvFを使用してWindowsドライブをマウントするには、通常のLinuxマウントコマンドを使用できます。たとえば、リムーバブルドライブD:を/ mnt / dディレクトリとしてマウントするには、次のコマンドを実行します。

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

これで、/ mnt / dの下にあるD:ドライブのファイルにアクセスできるようになります。ドライブをアンマウントする場合、たとえば安全に取り外すことができるようにするには、次のコマンドを実行します。

$ sudo umount /mnt/d

ネットワークロケーションのマウント

ネットワークロケーションをマウントする場合は、Windowsでマップされたネットワークドライブを作成し、上記のようにマウントできます。ただし、UNCパスを使用して直接マウントすることもできます。

$ sudo mkdir /mnt/share
$ sudo mount -t drvfs '\\server\share' /mnt/share

UNCパスを囲む一重引用符に注意してください。これらは、バックスラッシュをエスケープする必要を防ぐために必要です。UNCパスを一重引用符で囲まない場合は、バックスラッシュを二重にしてエスケープする必要があります(例:)\\\\server\\share

WSLには、ネットワーク共有への接続に使用する資格情報を指定する方法がありません。サーバーに接続するために異なる資格情報を使用する必要がある場合は、Windows資格情報マネージャーまたはnet useコマンドを使用して、エクスプローラーで共有に移動し、Windowsで資格情報を指定します。net useコマンドは、interopを介してWSL内部から(net.exe useを使用して)呼び出すことができます。このコマンドの使用方法の詳細については、net.exe help useと入力してください。


2
「bash for windows 10」で完全に機能しました!どうもありがとうございます!
インチャン

6
質問に直接回答するため、正解はこれに変更する必要があります。
トメック

DrvFを取得するには、「Windows Insiderビルド」が必要です。-1(実際には投票ではありません)
FractalSpace

5
私はWindows
Insider Buildを

2
これにより共有がマウントされますが、すべてがルートによって所有され、一部のファイルは読み取り不能です(sudoを使用しても、WSL内のアクセス許可が777であっても)。Windowsファイルエクスプローラーからファイルを読み取ることができます。マウントオプション(-o)を追加すると、「間違ったfsタイプ、不正なオプション、不正なスーパーブロック」エラーが表示されます。
ジェイK

2

https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951を参照してください

ここに基づくWSLでGFSをマウントする方法ですWSLの`sshfs`作業を取得または代替を見つけるトリックが使用するhttps://www.nsoftware.com/sftp/netdrive/を WindowsからのGFSへのsshにし、それを変換するにはWSLの下にマウントできるファイルシステムに。

  1. Win10 Win10設定でOpenSSHサーバーをインストール->アプリ->オプション機能の管理->機能の追加->必要に応じてOpenSSHサーバーを再起動サービス-> OpenSSH->プロパティ->スタートアップの種類->自動(遅延)

  2. SFTPNetDriveをインストールして実行し、非表示アイコンのアイコンを右クリック->メインウィンドウ(または既に開いている場合があります)->プロファイル->新しいプロファイル(サーバー:localhost、ユーザー:* pwd:*ドライブ文字:F(または別の)詳細- >(プロトコル->圧縮のチェックを外す;指定されたフォルダー:G:\))

  3. Bash(wsl)の場合:sudo mkdir / mnt / f; sudo mount -t drvfs F:/ mnt / f

どれだけ安定しているかはわかりませんが、WSLでファイルを開くことができました。


-2

WindowsでBashを使用するには、(少なくとも)2つの方法があります。

  1. WLSに付属のBash(Windowsストアまたは他のソースからWindows 10にLinuxをインストールする場合)
  2. WindowsでのGit-Bash

Git-Bashはネットワークフォルダーにアクセスできます(git-bashをインストール>ネットワークフォルダーに移動>右クリック>「Git Bashをここに」>実行pwdしてパスを表示)。

WLSバージョンのbash 使用する必要がある場合は、次のようにWLS bashからGit-Bashを呼び出すことができます。

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.