High Sierra 10.13.3에서 osxfuse 3.7.1, sshfs 2.10, fuse libs 2.9.7을 설치했습니다.
fstab을 통해 먼 디렉토리를 마운트하면 마운트 포인트를 마운트 해제하면 왼쪽에 좀비 상태가 남고 해당 경로로 수행 할 수 있는 유일한 작업은 sshfs 마운트에 다시 사용하는 것입니다. 뿌리. 좀비를 다른 파일로 전송하여 마운트 포인트를 복구 할 수있는 이상한 트릭이 있지만 (아래 참조).
내는 /etc/fstab
것입니다 :
me@host:/home/me /Users/me/tmp/foo sshfs allow_other 0 0
이것은 문제를 보여줍니다 (여기서는 사용 diskutil umount
하지만 umount
Finder의 GUI에서 꺼내기 같은 결과를 얻습니다).
먼저 sshfs를 직접 사용하여 (문제 없음) :
$ cd /Users/me/tmp
$ mkdir foo
$ ls -l
drwxr-x--x 2 me staff 64B 13 Feb 20:41 foo
$ sshfs me@host:/home/me foo
$ ls foo/
# OK, contents of the distant directory.
$ diskutil umount foo
Unmount successful for foo
$ ls -l
drwxr-x--x 2 me staff 64B 13 Feb 20:41 foo
# umount really worked.
둘째, /etc/fstab
(좀비 파일로 이어짐) :
$ sudo cp /etc/fstab /etc/fstab.backup
$ echo "me@host:/home/me $PWD/foo sshfs allow_other 0 0" | sudo tee /etc/fstab >/dev/null
$ mount $PWD/foo
$ ls foo/
# OK, contents of the distant directory.
$ diskutil umount foo
Unmount successful for foo
그러나 실제로는 현재 foo
" 좀비 "입니다.
$ ls -l
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:04 foo
# (Ownership/timestamp have changed.)
$ sudo chown me:staff foo
chown: foo: No such file or directory
$ sudo ls foo
ls: foo: No such file or directory
$ sudo rm foo
rm: bar: is a directory
$ sudo rmdir foo
rmdir: foo: Resource busy
$ ls /Volumes
Macintosh HD
$ sudo lsof foo
# Nothing.
이 시점에서 마운트 포인트 foo
는 좀비 파일이되었으며 거의 상호 작용할 수 없습니다. 재부팅해도 파일이 여전히 문제가있는 상태입니다.
내가 할 수있는 유일한 것은 루트로 다시 마운트하는 것입니다.
$ mount $PWD/foo
mount_osxfuse: failed to mount /Users/me/tmp/foo@/dev/osxfuse0: Operation not permitted
$ sudo mount $PWD/foo
$ ls foo/
# OK, contents of the distant directory.
$ sudo diskutil umount foo
# (Back to the same zombie state.)
그리고 좀비를 다른 디렉토리로 옮길 수 있습니다.
$ mkdir bar
$ ls -l
drwxr-x--x 2 me staff 64B 13 Feb 21:16 bar
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:12 foo
$ echo "me@host:/home/me $PWD/bar sshfs allow_other 0 0" | sudo tee /etc/fstab >/dev/null
$ mount $PWD/bar
$ ls bar/
# OK, contents of the distant directory.
$ ls -l -d foo
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:12 foo
$ diskutil umount bar
$ ls -l
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:19 bar
drwxr-x--x 2 me staff 64B 13 Feb 20:41 foo
# After umounting bar:
# foo’s ownerships is me:staff again, bar is zombie.
어떤 아이디어? 내가 뭔가 잘못하고 있습니까?
@jaume 두 검색 중 어느 것도 아무것도 출력하지 않습니다.
—
n.caillou
/etc/fstab/
버전으로 변경 하면 mount 명령이 /Library/Filesystems/fuse.fs/
존재하지 않으므로 실패 합니다. in osxfuse
대신에 fuse
를 사용 /etc/fstab
하면 mount 명령 /Library/Filesystems/osxfuse.fs/Contents/Resources/mount_osxfuse
이 "이 프로그램은 직접 호출되지 않습니다. OSXFUSE 라이브러리가 호출합니다"라는
문제가 해결되지 않았다 니 죄송합니다. 누군가가 해결책이나 유용한 힌트를 얻었기를 바랍니다.
—
jaume
foo
"좀비"는 언제sudo lsof foo
입니까? 실행중인 원격 호스트에 대한 ssh 프로세스가ps -ef|grep "me@host"
있습니까 ( ? 시도 할 수있는 대체 fstab 항목 형식이 있습니다sshfs#me@host:/home/me /Users/me/tmp/foo fuse allow_other 0 0
.