umount de un volumen sshfs montado a través de fstab da como resultado un archivo zombie (osxfuse)

1

He instalado osxfuse 3.7.1, sshfs 2.10, fuse libs 2.9.7 en High Sierra 10.13.3.

Las cosas parecen funcionar, excepto que si instalo un directorio distante a través de fstab, al desmontar el punto de montaje se deja en un estado de zombie, y la cosa solo que puedo hacer con ese camino es reutilizarlo para un montaje sshfs, como root. Aunque hay un truco extraño mediante el cual puedo recuperar el punto de montaje transfiriendo el zombiness a un archivo diferente (ver más abajo).

Mi /etc/fstab es:

me@host:/home/me  /Users/me/tmp/foo  sshfs  allow_other  0  0

Esto demuestra el problema (aquí estoy usando diskutil umount pero umount y la expulsión en la GUI del Finder da el mismo resultado):

Primero, con sshfs directamente (sin problemas):

$ 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.

Segundo, a través de /etc/fstab (conduce a un archivo zombie):

$ 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

Sin embargo, en realidad ahora foo es " zombie ":

$ 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.

En este punto, el punto de montaje foo se ha convertido en un archivo zombie & Casi no puedo interactuar con eso. Incluso si reinicio el archivo todavía está en su estado problemático.

Lo único que puedo hacer es volver a montarlo como root:

$ 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.)

Y puedo transferir el zombiness a un directorio diferente:

$ 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.

¿Alguna idea? ¿Estoy haciendo algo mal?

    
pregunta n.caillou 14.02.2018 - 04:42

0 respuestas

Lea otras preguntas en las etiquetas