umount di un volume sshfs montato tramite fstab genera un file zombie (osxfuse)

1

Ho installato osxfuse 3.7.1, sshfs 2.10, fuse libs 2.9.7 sotto High Sierra 10.13.3.

Le cose sembrano funzionare, tranne che se monto una directory remota via fstab, dopo aver smontato il mountpoint viene lasciato in uno stato zombie, e la cosa solo che posso fare con quel percorso è riutilizzarlo per un sshfs mount, come root. Anche se c'è un trucco strano con il quale posso recuperare il mountpoint trasferendo lo zombi in un file diverso (vedi sotto).

Il mio /etc/fstab è:

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

Questo dimostra il problema (qui sto usando diskutil umount ma umount ed eject nella GUI del Finder danno lo stesso risultato):

Innanzitutto, con sshfs direttamente (nessun problema):

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

Secondo, tramite /etc/fstab (conduce a un file zombi):

$ 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

Tuttavia, attualmente foo è " 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.

A questo punto il mountpoint foo è diventato un file zombie & Non riesco quasi a interagire con esso. Anche se riavvio il file si trova ancora nel suo stato problematico.

L'unica cosa che posso fare è rimontarla come 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.)

E posso trasferire lo zombi in una directory diversa:

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

Qualche idea? Sto facendo qualcosa di sbagliato?

    
posta n.caillou 14.02.2018 - 04:42
fonte

0 risposte

Leggi altre domande sui tag