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 2つの検索のどちらも何も出力しません。
—
n.caillou
/etc/fstab/
バージョンを変更すると、mountコマンドが/Library/Filesystems/fuse.fs/
存在しないために失敗します。inのosxfuse
代わりに使用fuse
する/etc/fstab
と、mountコマンド/Library/Filesystems/osxfuse.fs/Contents/Resources/mount_osxfuse
が「このプログラムは直接呼び出されることを意図していない。OSXFUSEライブラリが呼び出す」
問題を解決できなかったことを読んで申し訳ありません。誰かが解決策や有用なヒントを聞いてくれることを願っています。
—
ジャウメ
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
。