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.

물론 반복하기 쉽도록 기능에 할당해야 합니다.

관련 정보