Skip to content

Instantly share code, notes, and snippets.

@natritmeyer
Created September 19, 2013 09:40
Show Gist options
  • Save natritmeyer/6621231 to your computer and use it in GitHub Desktop.
Save natritmeyer/6621231 to your computer and use it in GitHub Desktop.
How to mount and unmount a SMB share on Mac OS X (using mount_smbfs)
#Mounting the share is a 2 stage process:
# 1. Create a directory that will be the mount point
# 2. Mount the share to that directory
#Create the mount point:
mkdir share_name
#Mount the share:
mount_smbfs //username:password@server.name/share_name share_name/
#Unmount the share:
umount share_name
@superkeyor
Copy link

for special character in password, see here https://stackoverflow.com/a/37179333/2292993. replace with special code
@ -> %40
$ -> %24
! -> %21

@mwmcode
Copy link

mwmcode commented Nov 16, 2019

mount_smbfs: mount error: /Users/machenchi/shareDev: No such file or directory
But I have made a dir with mkdir /Users/machenchi/shareDev

@vaxilicaihouxian, any success?

@vaxilicaihouxian
Copy link

mount_smbfs: mount error: /Users/machenchi/shareDev: No such file or directory
But I have made a dir with mkdir /Users/machenchi/shareDev

@vaxilicaihouxian, any success?

No

@x3l51
Copy link

x3l51 commented May 30, 2020

Guys I had a similar problem and created a script for this. I had the problem with passing a domain name as username containing a backslash and a very secure password containing a lot of special characters. Here you can see it.

I also have made a script that mounts shares automatically and uses the keychain so it is non-interactive. Should I upload it as well? I use it everyday and trigger it with ip-up (ppp), so all my network shares connect automatically every time I connect to a specified VPN.

@Caipers
Copy link

Caipers commented Jun 22, 2020

I actually had to scape ';':
mount_smbfs smb://domain;user:password@ipaddress/folder/subfolder /your_local_pre_existing_folder

@mpc0
Copy link

mpc0 commented Jan 2, 2021

@x3l51 It would be great if you could share the script you made that mounts shares automatically and uses the keychain so it is non-interactive.

@tamala73
Copy link

tamala73 commented Mar 3, 2021

@x3l51 Awesome, could you share the script that mounts shares automatically and uses the keychain?

@tarnold-papajohns
Copy link

Thank you! This speeds up my transfer of over a gig of data tremendously. Finder is HORRIBLE!

@j3pic
Copy link

j3pic commented Dec 5, 2021

This requires root on macOS 10.15.7, and the resulting mount will be root-owned and require root to access.

@Traace
Copy link

Traace commented Dec 28, 2021

@j3pic, since macOS 10.15 you can still mount to your user directory without root.
For example use shortcut: ~/your_share
It will get mounted in: /Users/your_username/your_share

Also check "man mount_smbfs" - it teaches you about soft, sessionencrypt and shareencrypt parameters. Very useful :)

@j3pic
Copy link

j3pic commented Jan 3, 2022

@Traace No, it doesn't work unless you're root.

If you try it from a non-root account, one of the following two errors will happen:

If the mount-point (~/your_share in your example) is an existing directory, you'll get this error:

mount_smbfs: mount error: /Users/your_username/your_share: File exists

If the directory does not exist, you'll get this error instead:

mount: realpath /Users/your_username/your_share: No such file or directory

If you do it as root, the operation will succeed (edit: if the mount-point directory exists), but the mount will be owned by root.

It doesn't matter if you use mount -t smbfs ... or if you call mount_smbfs directly.

@artbendandi
Copy link

This saved me today, thanks for posting!

@easp
Copy link

easp commented Feb 10, 2022

@j3pic. Something else must be going on.
On Monterey I just did: mount -t smbfs //username@server.local/share ~/mnt. It mounted without error and I can access it without needing sudo.

@spartaaa-git
Copy link

@j3pic @easp The user must be an admin in order to run the mount or mount_smbfs commands because both exist in /sbin. It will be owned by the account that runs the command. In my case, I am trying to run some form of this command in a script from Jamf for a Standard user to access. I have been able to make this work by doing running this as root:
sudo -u localUser mount -t smbfs //username@server.local/share ~/mnt

@j3pic
Copy link

j3pic commented May 5, 2022

@spartaaa-git Why do people keep insisting that this works? It doesn't. My account was admin. You have to be root. The command you suggested exhibits the same behavior I described originally.

@j3pic
Copy link

j3pic commented May 5, 2022

@easp Monterey deprecates all kinds of features on Intel Macs. I won't be upgrading to it.

@kfix
Copy link

kfix commented Sep 25, 2022

If you're wondering why this won't work for connecting with a very old share (Win98!) in monterey and you see:

joey@ghostbook mnt % mount_smbfs //tinyking98/c tinyking
mount_smbfs: server connection failed: Unknown error: -5996

this shows up in Console.app:
smb1_smb_negotiate: Support for the server TINYKING98 has been deprecated (PreXP), disconnecting

adding this to /etc/nsmb.conf doesn't help:

[default]
# allow SMB 1+2+3
protocol_versmap=7

edit:
It turns out this notice is present in older versions too; google shows a complaint on El Capitan, I got it in Catalina.
you can find the source of the error log here:
https://github.com/apple-opensource-mirror/smb/blob/98c9fff3ade4b449013c0d106c45b6ffb35cf609/kernel/netsmb/smb_smb.c#L421

else where in that codebase, we see that
#define SMB_ENETFSNOPROTOVERSSUPP -5996
😭

it only seems to show when using the mount_smbfs tool and not via the Finder.

I have an old PPC eMac running 10.5.8 (Leopard) and the mount succeeds on there!

@bilogic
Copy link

bilogic commented Jun 22, 2023

Can update the gist for Monterey which requires adding WORKGROUP?

mount_smbfs //'WORKGROUP;username':password@remote-host/shared local-mount-point/

@arisolt
Copy link

arisolt commented Jun 22, 2023

mount_smbfs: mount error: /Users/machenchi/shareDev: No such file or directory
But I have made a dir with mkdir /Users/machenchi/shareDev

@vaxilicaihouxian @mwmcode I had the same issue. I fixed it by putting the last argument (i.e the mounting point) in quotes. So, the original command becomes:

mount_smbfs //username:password@server.name/share_name "share_name/"

@mbyrne00
Copy link

mbyrne00 commented Aug 16, 2024

For those who keep getting File exists without sudo it may be that you already have that drive mounted in Finder. In my case I was exploring the drive in finder. When I unmounted that it worked a charm.

Details and an automation script available: https://stackoverflow.com/a/78877529/945789

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment