NFS 마운트 포인트에 마운트 할 때 sshfs를 (정리 적으로) 마운트 해제하는 방법은 무엇입니까?


15

동료가 /home파일 서버에서 공유 하는 데스크톱 컴퓨터를 가지고 있습니다. sshfs랩톱 에서 제대로 작동하는 다른 SSH 호스트에 특정 디렉토리 를 마운트하기 위한 Perl 스크립트를 개발했습니다 .

그의 컴퓨터에서 스크립트 sshfs는 끝에서 마운트를 해제하지 못하고 마운트 지점을 깨끗하지 않은 상태로 둡니다. 재부팅 이외의 마운트 지점을 복구 할 방법을 찾지 못했습니다. 몇 가지 테스트를 한 후 설정의 차이점은 /homeNFS에 있다는 것입니다. 그의 /tmp경우 에는 완벽하게 작동합니다.

마운트 후, 스크립트 조작 중에 모든 것이 정상입니다. 킬링 때 sshfs과정을 그것으로 나열 <defunc>하여 ps부모 프로세스 (펄 스크립트)가 종료 될 때까지. sshfs쉘에서 raw 명령을 실행할 때 여전히 문제가 발생합니다.

ls -dl마운트 포인트 의 출력은 다음과 같습니다 (기억 – 현재 쉘 출력의 실제 사본이 없습니다).

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(대부분의 모든 정보에 대한 물음표 만, 최소한 모든 권한 정보)

sshfs 마운트는 여전히으로 나열 mount되지만로 수행 할 때에도 오류 권한이 거부 되어 마운트 해제 조작이 실패합니다 root.

Google을 검색했지만 네트워크 파일 시스템 실행에 대한 sshfs와 NFS 간의 비교는 많았습니다. NFS 디렉토리에서 sshfs 마운트 / 언 마운트를 안전하게 수행하려면 어떻게해야합니까?

답변:


38

다음을 실행하여 sshfs 공유를 마운트 해제 할 수 있어야합니다.

 fusermount -u /path/to/sshfs/share

나는 이것을 시도했지만 권한이 거부되었습니다 . 물론 umount루트가 아닌 사용자로 실행할 때는 보통 실패해야합니다.
Daniel Böhmer

(어떤 방법 으로든) 마운트 해제 할 수없는 이유는 홈 디렉토리가 NFS에서 마운트되어 root_squash옵션 과 함께 내보내지기 때문 입니다. 따라서 루트는 자신의 홈 디렉토리에 권한이 없습니다. 전원을 끌 수도 root_squash있지만 다른 곳에 마운트하는 것이 더 안전합니다.
JFlo

2
디렉토리가 어딘가에 사용될 때 마다, umount또는 fusermount -u작동하지 않습니다. 따라서 cd사용 fusermount -u하거나 사용 하기 전에 디렉토리에서lsof /my/local/mountpoint
eli

16

pkill을 사용하여 프로세스를 종료 한 다음 마운트 된 폴더 경로를 마운트 해제하십시오.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

때로는 umount 대신 "sudo umount -f"또는 "sudo umount -l"을 수행해야합니다.
fchen

0
sudo diskutil umount force ~/mount/

이 명령은 OS X에서 작동하는 것 같습니다.


6
이 코드의 기능과 문제를 해결하는 방법을 설명하기 위해 답변을 확장 할 수 있습니까? 설명 할 수없는 코드는 솔루션을 가르치지 않기 때문에 권장 하지 않습니다. 감사. 검토 큐에서
fixer1234

이것은 OS X 용입니다. Linux에 대한 질문입니다.
던컨 X 심슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.