저는 현재 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
그러니 공식적으로는 상황이 해결됐다고 해도 과언이 아니다.