[macos] Unmount the directory which is mounted by sshfs in Mac

I've installed OSXFUSE in my mac and used sshfs to mount a remote directory. Now I would like to unmount it, but can't find the way. My OS is OSX 10.8 Mountain. Can anyone help?

This question is related to macos sshfs umount

The answer is


if you want to kill all mounted sshfs connections you can use this. I tried it with ubuntu.

ps -ef | grep "sshfs" | awk '{print $2}' | xargs kill -9

I added it to bash_aliases


Just for reference I found this worked for me.

diskutil unmount /path/to/directory/

When I used the umount command I got an error that recommended this diskutil command.


At least in 10.11 (El Capitan), the man page for umount indicates:

Due to the complex and interwoven nature of Mac OS X, umount may fail often. It is recommended that diskutil(1) (as in, "diskutil unmount /mnt") be used instead.

This approach (e.g., "diskutil umount path/to/mount/point") allows me to unmount sshfs-mounted content, and does not require sudo. (And I believe that it should work back through at least 10.8.)


If you have a problems with fusermount command you can kill the process :

ps -ax | grep "sshfs"


Just as reference let me quote the osxfuse FAQ

4.8. How should I unmount my "FUSE for OS X" file system? I cannot find the fusermount program anywhere.

Just use the standard umount command in OS X. You do not need the Linux-specific fusermount with "FUSE for OS X".

As mentioned above, either diskutil unmount or umount should work


You can always do this from finder. Simply navigate to the directory above where the mount is and hit the eject icon over the mounted folder, which will have SSHFS in the name (in the finder). A shortcut to open a folder in the finder from the terminal is

open .

which will open up the current directory in a new finder window. Replace "." with your directory of choice.


The following worked for me:

hdiutil detach <path to sshfs mount>

Example:

hdiutil detach /Users/user1/sshfs

One can also locate the volume created by sshfs in Finder, right-click, and select Eject. Which is, to the best of my knowledge, the GUI version of the above command.


Try this:

umount -f <absolute pathname to the mount point>

Example:

umount -f /Users/plummie/Documents/stanford 

If that doesn't work, try the same command as root:

sudo umount -f ...

use ps aux | grep sshfs to find the PID of sshfs (It will be the number next to the username)

Then kill -9 $PID, if the other solutions don't work


If your problem is that you mounted a network drive with SSHFS, but the ssh connection got cut and you simply cannot remount it because of an error like mount_osxfuse: mount point /Users/your_user/mount_folder is itself on a OSXFUSE volume, the github user theunsa found a solution that works for me. Quoting his answer:


My current workaround is to:

Find the culprit sshfs process:

$ pgrep -lf sshfs

Kill it:

$ kill -9 <pid_of_sshfs_process>

sudo force unmount the "unavailable" directory:

$ sudo umount -f <mounted_dir>

Remount the now "available" directory with sshfs ... and then tomorrow morning go back to step 1.


In my case (Mac OS Mojave), the key is to use the full path $umount -f /Volumnes/fullpath/folder


sudo diskutil unmount force PATH 

Works every time :)
Notice the force tag