If you are trying to mount a Windows 2008 (or potentially other versions of windows) share using mount.cifs and you keep getting an input/output error like the one below, then read on.
[jason@superfreak ~]$ sudo mount //powerhouse-smb.mydomain.com/LogFiles /mnt/ecomm/ -tcifs -orw,username=doctor
mount error 5 = Input/output error
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
The error reporting that is provided by mount.cifs is really not that good. That input/output error could really mean anything. Let’s use smbclient to attempt a connection to the share. smbclient is sort of like a FTP client, but used to connect to a SMB share. However, the real reason why we are using it is because it gives much more detailed error reporting by default. Also, you could increase the debug level to some truly insane detail.
[jason@superfreak ~]$ smbclient //powerhouse-smb.mydomain.com/LogFiles -U doctor
Enter doctor’s password:
Domain=[POWERHOUSE] OS=[Windows Server 2008 R2 Standard 7601 Service Pack 1] Server=[Windows Server 2008 R2 Standard 6.1]
tree connect failed: NT_STATUS_DUPLICATE_NAME
Finally, some more detail. The error message ‘NT_STATUS_DUPLICATE_NAME’ indicates that the connection was denied by the windows server because the destination host name that I provided was different then the computer name set on the actual destination server. This is a security feature in Windows Server 2008 (and likely other versions of Windows). In my case this is because I access the server through a load balancer. There is a special virtual service on the load balancer to allow the SMB connection into the server. However, for you the mismatch might be caused by a alias in your hosts file, bad DNS entry or simply even a mistype.
Now try the mount operation using the IP addresses instead of the hostname. Using just the IP address will not cause that security check to trip. Now it should work with no issues.