fstab을 통해 마운트 된 sshfs 볼륨을 umount하면 좀비 파일 (osxfuse)이 생성됩니다 foo/

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하지만 umountFinder의 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.

어떤 아이디어? 내가 뭔가 잘못하고 있습니까?



답변