Windows Linux Subsystem에서 네트워크 마운트 드라이브에 액세스하는 방법은 무엇입니까?


60

로컬 Windows 컴퓨터에 samba 드라이브가 장착되어 있습니다.

WLS에는 "/ mnt / c"드라이브 ( "Windows 10 bash")가 있지만 "/ mnt / z"는 없습니다.

어떻게 든 액세스 할 수 있습니까? WLS에 다시 마운트 할 수 있습니까?


3
Microsoft 개발자 피드백 wpdev.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을 사용하고 있습니다.


동의, 이것은 나에게도 showtopper입니다-방금 msys2를 설치했습니다.
Ela782


mklink로 인수의 순서가 잘못된 것입니다 - 그것은해야 linkname target하지target linkname
masterxilo

예, masterxilo, 당신은 맞습니다-mklink 명령이 잘못되었습니다. 결정된. 실제로 시도했을 때 올바르게 수행했으며 WSL에 대해서는 작동하지 않았습니다. WSL이 이제 네트워크 공유를 마운트 할 수 있기 때문에 지금은 문제의 여지가 있습니다. 그러나 정정 주셔서 감사합니다. 아무도이 답을보고 있지 않더라도 그런 실수를하는 것을 싫어합니다.
조셉 Thvedt

106

에서 링크 bleater 게시

DrvF 장착

DrvF를 사용하여 Windows 드라이브를 마운트하기 위해 일반 Linux mount 명령을 사용할 수 있습니다. 예를 들어, 이동식 드라이브 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 사용)에서 호출 할 수 있습니다. 이 명령을 사용하는 방법에 대한 자세한 내용을 보려면 net.exe help use를 입력하십시오.


2
내 "bash 10 for windows 10"에서 완전히 일했습니다! 정말 고맙습니다!
Ying Zhang

6
질문에 직접 대답하기 때문에 정답을 이것으로 변경해야합니다.
Tomek

DrvF를 얻으려면 "Windows Insider build"가 필요합니다. -1 (실제로 투표하지 않음)
FractalSpace

5
나는 창 내부 빌드가없는 그것은 나를 위해 일하고있어
G 맨

2
이렇게하면 공유가 마운트되지만 모든 것은 루트에 의해 소유되며 일부 파일은 읽을 수없고 (sudo를 사용하거나 WSL 내부의 권한이 777 인 경우에도) 읽을 수 없습니다. Windows 파일 탐색기에서 파일을 읽을 수 있습니다. 마운트 옵션 ( -o)을 추가하면 "잘못된 fs 유형, 잘못된 옵션, 잘못된 수퍼 블록"오류가 발생합니다.
Jay K

2

참조 https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951를

여기에 따라 WSL에서 GFS를 장착하는 방법입니다 대체 WSL에`sshfs` 작업을 얻거나 찾는 트릭이 사용하는 것입니다 https://www.nsoftware.com/sftp/netdrive/를 윈도우에서 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를 사용하는 방법에는 적어도 두 가지가 있습니다.

  1. WLS와 함께 제공되는 Bash (Windows Store 또는 기타 소스에서 Windows 10에 Linux를 설치할 때)
  2. Windows의 Git-Bash

Git-Bash는 네트워크 폴더에 액세스 할 수 있습니다 (git-bash 설치> 네트워크 폴더로 이동> 마우스 오른쪽 단추 클릭> "Git Bash Here"> 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.