로컬 디렉토리를 어떻게 마운트 바인딩합니까?


16

리눅스에서, 당신이 할 수있는 위대한 일 중 하나는 (특히 개발자들을 위해) 폴더를 마운트하고 시스템의 다른 폴더에 로컬로 바인딩하는 것입니다.

이것은 Git과 같은 도구가 다른 유형의 노드로 감지하지 못했기 때문에 심볼릭 링크보다 이점이 있었으며 원래 내용을 제거 할 필요가 없었습니다. 완료되면 간단하게 마운트 해제 할 수 있으며 원래 파일 시스템 내용이 남게됩니다.

그러나, mount -bind또는 mount.local(OS X 10.10.2, 요세미티 현재) 맥에 존재하지 않는 것.

이것에 대해 어떻게 가나 요?

답변:


10

으로 StackOverflow의 다른 사용자에 의해 언급 , 당신은 NFS이에 할 마운트 사용할 수 있습니다. 그러나 약간의 일회성 설정이 필요합니다.

먼저 /etc/exports파일 을 설정해야 합니다 (아직 설정하지 않은 경우).

$ sudo tee -a /etc/exports <<< "/ -alldirs -mapall=$USER localhost"

둘째, 당신은해야합니다 시작 RPC의 nfsd 서비스를.

$ sudo launchctl start com.apple.rpcbind
$ sudo nfsd start

거기에서 NFSd를 깨우고 아침을 먹으십시오.

$ sudo mount localhost:/path/to/target ./mnt

원본 내용을 복원하려면

$ sudo umount ./mnt

exfat usb 드라이브를 마운트하려고했습니다$ sudo mount localhost:/Volumes/Aren/Movies /Users/me/Movies/
Necktwi

mount_nfs: can't mount /Volumes/Aren/Movies from localhost onto /Users/me/Movies: No such file or directory
Necktwi

다른 방법으로하면 제대로 작동합니다!
Necktwi

"No such file or directory (이러한 파일 또는 디렉토리 없음)"가 표시되면 먼저 대상에 마운트 할 폴더를 만드십시오. "Permission Denied"오류가 발생하면 "sudo nfsd restart"를 시도해보십시오 (나를 위해 nfsd가 이미 시작되었으므로 새 내보내기 라인을 가져 오기 위해 다시 시작해야했습니다)
Nick

1
@JayGee 저는 OP입니다. 당시 Git에 어떤 오류가 있었습니까? 당신이 cd밖으로 에드 다음 다시 힘내을 사용하기 전에? 쉘은 전체 문자열 경로가 아닌 inode에 묶인 파일 디스크립터와 함께 작동하는 경향이 있습니다. 따라서 "동일한"디렉토리에 마운트하여 머물면 쉘은 여전히 ​​마운트 된 디렉토리 대신 기본 디렉토리를 사용하여 작동합니다. Git이 마운트 된 것을보아야 할 이유가 없습니다. 마운팅이 그렇게 작동하지 않습니다. 모든 의도와 목적을 위해 동일한 유형의 파일 시스템입니다.
Qix-MONICA가 MISTREATED했습니다.

10

또 다른 옵션 인 bindfs가 있습니다. FUSE 를 설치해야 하지만 NFS 사용에 대한 대안을 제공합니다.

소스에서 컴파일해야 할 수도 있지만 MacPorts 에서도 사용할 수 있습니다.


2
브루 : 설치 osxfuse , 다음 brew install homebrew/fuse/bindfs(엘 캐피 탄에서 테스트;에 대한 필요가 없습니다 sudo전에 bindfs사용자 중심의 마운트 용)
dhchdhd

퓨즈의 단점은 inotify 이벤트를 지원하지 않는다는 것입니다. 소스가 업데이트되면 앱이 대상에서 업데이트를 감시하는 동안 업데이트를받지 않습니다.
diimdeep

또한 bindfs 볼륨 내부의 것들을 컴파일 할 때 약간 까다 롭습니다. 특히 나는 명백한 이유없이 Xcode에서 하나의 특정 프로젝트에 대해 "너무 많은 열린 파일"을 지속적으로 얻습니다. 마운트하지 않고 내용을 복사하면 제대로 빌드됩니다.
Grishka
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.