시작 시 wsl2를 바인딩할 때 PATH에 공백이 있는 디렉터리를 마운트하도록 fstab을 편집하는 방법

시작 시 wsl2를 바인딩할 때 PATH에 공백이 있는 디렉터리를 마운트하도록 fstab을 편집하는 방법

저는 현재 Windows에서 wsl2를 사용하고 있으며 연구를 위해 로컬로 MS OneDrive를 병렬로 사용하고 있습니다. 실제로 모든 파일을 내 OneDrive 계정과 동기화합니다. 내 Onedrive 폴더 이름은 다음과 같습니다.

Onedrive - 학교 이름

내 과정에서는 WSL2를 사용해야 하며 경로에 공백 없이 Windows 파일에 액세스하고 싶습니다. 내가 찾은 해결책은 mount bin 명령을 사용하는 것입니다.

sudo mount --bind /mnt/c/Users/MyName/OneDrive\ -\ SchoolName/Project ~/Project/

이것은 실제로 작동하지만 WSL을 시작할 때마다 명령을 입력하지 않도록 fstab을 편집하고 싶습니다. 내가 찾은 모든 튜토리얼이 작동하지 않기 때문에 무엇을 해야할지 모르겠습니다.

팁 고마워!

답변1

fstab(5)\040공백을 바꾸는 데 사용할 수 있는 문서입니다. 하지만 첫 번째 필드에는 두 번째 필드에만 있습니다.

빠른 해결 방법은 소스 디렉터리 어딘가에 심볼릭 링크를 만든 다음 바인드 마운트하는 것입니다.

sudo ln -s /mnt/c/Users/MyName/OneDrive\ -\ SchoolName/Project /.onedrive-link

그런 다음 마운트 /.onedrive-link~/Project/.


이 시점에서 분명한 질문은 '아직도 마운트를 바인딩해야 합니까?'입니다. 다음을 수행할 수 있습니다.

sudo rmdir ~/Project
ln -s /mnt/c/Users/MyName/OneDrive\ -\ SchoolName/Project ~/Project

일반 사용자에게도 속하고 수퍼유저 권한을 수정할 필요가 없는 심볼릭 링크가 생성됩니다.

답변2

간단한 해결책이 있습니다. ls 명령을 실행하고 폴더에 도달할 때까지 Tab 키를 누르기만 하면 됩니다.

예를 들어:

ls /volume1/test/etc (각 / 뒤에 폴더 이름을 탭으로 입력하므로 퍼티 또는 무엇을 사용하든 필요한 공백 기호가 자동으로 추가됩니다).

마운트하려는 폴더에 도달하면 "ls"를 "mount --bind"로 바꾸고 첫 번째 경로 뒤에 대상을 추가하세요.

이렇게 하면 두통을 피할 수 있습니다!

건배.

답변3

이 시도:

Fedora 35에서 내가 한 일은 디스크를 열고 마운트 옵션을 편집하는 것뿐이었습니다. 안타깝게도 wsl은 GUI를 제공하지 않으므로 내 fstab을 기반으로 예제를 제공하려고 합니다.

/mnt/c/Users/MyName/OneDrive / ntfs-3g defaults,bind 0 0

bind옵션은 트릭을 수행해야합니다

답변4

디스크에 액세스할 수 없는 경우 터미널 파일 편집기를 사용할 수 있습니다.nano

$ sudo nano /etc/fstab
#at the end of document
/source /destination none defaults,bind 0 0

저는 기본 옵션을 직접 사용하지 않습니다. 다음을 권장합니다.

/mnt/c/Users/MyName/OneDrive /home/(your username)/Project nosuid,nodev,nofail,x-gvfs-show,uid=1000,gid=1000,dmask=027,fmask=137,bind 0 0

작동하는지 알려주세요.

편집 1:

오랜 시간이 흘렀다는 건 알지만 상황이 더 이상 개입할 필요가 없다고 생각합니다. 이제 저는 Windows 11 Insider(빌드 25115)이고 Hyper-V가 활성화되어 있으며 Hypervisor가 비활성화되어 있습니다. Explorer에서 Ubuntu WSL을 볼 수 있으며 권한이 있으면 여기에 쓸 수 있습니다. 그리고 드라이버가 자동으로 설치됩니다. 이것은 내 fstab입니다(거의 비어 있음).

LABEL=cloudimg-rootfs   /    ext4   defaults    0 1

이것은 내 /mnt입니다(Ubuntu WSL에서 ls 명령 사용).

mohsentux@LovelyBloom:/mnt$ ls
c  d  e  f  wsl  wslg

그러니 공식적으로는 상황이 해결됐다고 해도 과언이 아니다.

관련 정보